読者です 読者をやめる 読者になる 読者になる

テキストボックスにクリアボタンをつける

Silverlight Advent Calendar 2011 に書こうと思っていたネタですが、手をあげるタイミングを逃したので、この年末に書きます。 さてさて、タイトルの内容ですが、最近は横にバツボタンがついていて、押すとテキストの内容が消えるテキストボックスをよく見…

XAML で定義ファイルを作る

このエントリは、Silverlight Advent Calendar 2011 への16日目の参加記事です。 もうすでに12月17日ですが。。。。 Silverlight では XAML って UI の定義に使われているだけで、実際にはオブジェクトのインスタンス構造の定義なんで、 UI 以外でもなんでも…

アウトオブブラウザアプリをオフラインインストール

このエントリは、Silverlight Advent Calendar 2011 への参加記事です。 さてさて、アウトオブブラウザのアプリケーションは実はオフラインでインストールが可能です。PCをどこかの部署で一括で設定してから配りたいけど、セキュリティ上ネットワークには繋…

開発記その 11 - InvokeMethodAction に引数 -

さて、開発記その1 で書いていた思うところあって作った InvokeMethodAction ですが、その思うところをようやっと実装しました。まぁ、実装自体は結構前にやっていて、ブログに書いてなかったのですが・・・。 で、思うところってなんやったのって話ですが、…

開発記その 10 - Action の後に Action -

のんびりと作ってるわけですが、やっとアカウントの作成に取り掛かりました。アカウントはダイアログあげて、そのダイアログの中で作ろうと思ったわけです。で、ダイアログが閉じたら親画面にあるアカウントの一覧にアカウントが反映されるって寸法です。で…

開発記その 9 - T4 で ViewModel を生成 -

ViewModelのプロパティを定義するのがいちいちめんどくさかったので、T4 で生成するようなのを書いてみた。T4 の先頭で以下のような感じで PropertyDef を複数並べるとそれに対応した C# のコードを生成します。 List<PropertyDef> propertyDefs = new List<PropertyDef>(){ new Proper</propertydef></propertydef>…

開発記その 8 - T4 で画面遷移用の URL クラスを生成 -

画面遷移で XAML 名をハードコードするのは嫌だったので、プロジェクトの中にある Page を探し出してクラスを作る T4 を書いてみた。生成するクラスは以下のような感じで Pages クラスと PagesWrapper の二つ。Pages クラスがルートでフォルダはネストクラス…

開発記その 7 - バインディングエラーがある場合は処理をしないように -

さて、http://d.hatena.ne.jp/k_maru/20100815/1281885406 の続きです。 バインディングエラーがある場合に処理をしないようにするのも同時に実装してました。前の投稿で実装していた ValidationErrorInfo に IsPropertyValidationError っていうプロパティ…

開発記その 6 - 複数のプロパティに対応するエラーをグループ化

さて、http://d.hatena.ne.jp/k_maru/20100809/1281355604 で書いたようにバリデーションが微妙すぎたので、少し対応した。まずは、ログインエラー時のマークを、新しい値が入力されたときに消す対応。ViewModelBase ではエラーを Dictionary> でプロパティ…

Yahoo! Silverlight マップ API を使ってみた。

Yahoo の Silverlight マップの API が公開されたってことでお試しで使ってみました。 foursquare の情報を元にマーカーを立ててます。foursquare の API は JavaScript で叩けないらしく、サーバーサイドからつくるかと思ったんですが、 Bing Map が foursq…

開発記その 5 - ログイン画面開発中でバリデーションが微妙すぎる件について -

さて、遅々として進まない開発だが、やっとこさログイン画面の実装が"ほぼ"完了。"ほぼ"と書いたのはバリデーションが非常に微妙すぎるのだ。どこが微妙かと言うと、ログイン実行の時にユーザーがいないかパスワードが間違っていた場合。現状では、UserName …

開発記その 4 - Domain Service の引数にエンティティ -

やっとユーザー作成の完成です。サボりすぎ。。で、表題の件ではまりました。ユーザー作成は Silverlight の BusinessApplication のテンプレートについてるのですが、そのまま使うのではなく、抜き出す形で MembershipService っていう名前で作りました。メ…

開発記その 3 - HTMLのようにデフォルタボタンを設定したいなら Behavior で -

なかなかユーザー作成にたどり着けないでいてますが・・・。画面を立ち上げて動作確認をしてると、テキストボックスに値を入力して、キーボードから手をはなしてマウスを持ってボタンをクリックするのが非常にめんどくさくなってきます。HTML の Submit なら…

開発記その 2 - バリデーション -

さてさて、 Silverlight では自前で頑張ったり、バインディング時に例外飛ばしたり、IDataErrorInfo を使って通知したりとかバリデーションとその表示方法がいくつかありますが、個人的には INotifyDataErrorInfo がいいかなと思ってます。何故かって言うと…

開発記その 1 - VM のメソッド呼び出し -

MoneyBook の開発に着手しました。MoneyBook は複数のユーザーで使うことを想定しているので、 ASP.NET の Membership を使ってログイン画面かなと思ったのですが、そもそもユーザー登録する画面も欲しくなったので、まずは登録画面から作りはじめました。テ…

開発記その 0 - はじめに -

以前からお金の支出をちゃんと記録しないとなと思ってたのですが、ここ最近大量にお金を使う機会がありまして、またお金を貯める必要が出てきたのでやっと重い腰をあげようかなと思い始めました。最初はエクセルでいいかなと思ったり、どっかのフリーソフト…

Expression Blend SDK for SL4

ここです。 http://www.microsoft.com/downloads/details.aspx?familyid=D197F51A-DE07-4EDF-9CBA-1F1B4A22110D&displaylang=en ちなみに WPF は以下。 http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=75e13d71-7c53-4382-9592-6…

Binding の StringFormat で金額表示

Silverlight 4 から Binding に文字列のフォーマットを指定できる StringFormat が追加されました。例えば、金額を表示するなら以下のような感じで書式指定の c を設定します。ここではスライダーで値を変更できるようにしています。 <StackPanel Orientation="Vertical"> <Slider Orientation="Horizontal" Minimum="100" Maximum="10000" Name="ValueSlider" /> </slider></stackpanel>

PathListBox がおもしろいのでアニメーションするようにしてみた

開催中の MIX10 で Silverlight 4 が発表されて嬉々として触ってるわけですが、 PathListBox が面白くって、Day1 のキーノートでチラッとみた、 eBay の回転するメニューに触発されて、 PathListBox も面白かったので選択されたアイテムを移動させるプログラ…

Out of Browser (その2) Twitter につないでみる

OOBをTrusted Appで動かすとクロスドメインもいけるそうな。ってことで、いままでやとTwitterにはcliantaccesspolicy.xmlがおいてなかったので直接Silverlightからつなんかったんやけど、つないでみる。 まずは、Trusted Appで動かすように設定。Out of Brow…

Out of Browser (その1)

Silverlight 4 では Out of browser (かつ trusted) で動かした時にできることが大幅に増えたってことで、ちょっと触ってみます。実は Silverlight 3 の OOB はおまけみたいな印象で特に重要視しなかったのであまり触ってないんですよね・・・。まずは VS で…

カメラ

Silverlight 4 からはカメラ・マイクを使えるようになったとさ。ってことで早速。 <Grid x:Name="LayoutRoot" Background="White"> <Grid.RowDefinitions> <RowDefinition Height="Auto" /> <RowDefinition /> <RowDefinition Height="Auto" /> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition /> <ColumnDefinition Width="Auto" /> <…</columndefinition></columndefinition></grid.columndefinitions></grid>

Nullableへのデータバインド

例えば以下のようなクラスがあったとする。 public class User : INotifyPropertyChanged { private string name; public string Name { get { return this.name; } set { if (this.name != value) { this.name = value; OnPropertyChanged("Name"); } } } p…

Application.UnhandledExceptionについて

さて、Silverlightにはフックされなかった例外の最終地点用にApplicationクラスにUnhandledExceptionイベントが用意されているのですが、こいつをちゃんと使えるようにどう動くか調べてみました。具体的には例外が発生するタイミングによって画面がどうなる…

DataContextの変更を検知する

たまーに、DataContextが変わったかどうかをチェックしたいことがあるのですが、Silverlight には DataContextChanged のイベントが無いのです。そもそも、DependencyProperty の変更イベントがとれないのがちょっと悲しいです。 で、DataContext の変更を検…

Custom Pixel Shader Effect はじめました。(その2)

外から輝度を変更できるように変更。Brighten.fx は以下。 float Threshold : register(C0); sampler2D input : register(s0); float4 main(float2 uv : TEXCOORD) : COLOR { float4 Color; Color = tex2D(input , uv.xy)*Threshold; return Color; }Brighte…

Custom Pixel Shader Effect はじめました。

まずは Direct X SDK をインストール http://www.microsoft.com/downloads/details.aspx?FamilyId=5493F76A-6D37-478D-BA17-28B1CCA4865A&displaylang=enインストールしたフォルダの下の Utilities\bin\x86 に Path を通しておくと後々便利 次にエフェクトの…

Silveright 3 RTW !!

Silverlight 3 がとうとう RTW しましたね。 取り急ぎ、リンク集です。 [http //www.microsoft.com/downloads/details.aspx?familyid=9442b0f2-7465-417a-88f3-5e7b5409e9dd&displaylang=en:title=Silverlight 3 Tools] : 日本語版はまだ影が見えないですね…

x:Name探訪(その3) ContentControl とか ItemsControl などなどにくっついていない要素の取得

Silverlight 2 の時は、カスタムコントロールの作りによっては FindName しても取得できない場合がありました。ちょっと完全にこれだという部分までは突き止めていないのですが、動きを見ているに ContentControl とか ItemsControl とか Panel の子供とか以…

x:Name探訪(その2) UserControl の x:Name を FindName

Silveright 3 の VS テンプレートから最初に表示される画面の名前が Page から MainPage に変わりましたね。いい感じです。 今日はこの MainPage の中に別に作った UserControl を配置して、その中のエレメントを FindName 出来るかどうかです。Silverlight …

x:Name探訪(その1) ElementName

だいぶお久しぶりになりました。 Silverlight3 Beta1 もでて結構な時間がたちましたが、最近やっと触れる状況になったのでボチボチ更新をしていきます。 というこうとで x:Name をちょっといろいろ触ってみます。 Silverlight 3 からようやく念願の Binding …

ADO.NET Data Servicesについて、驚愕の事実

正確には「SilverlightでのADO.NET Data Service クライアントについて、驚愕の事実」なんですが、どちらにしろ驚愕でした。なんと、クロスドメインのアクセスがサポートされていなかったのです!!もっと正確には結果的にクロスドメインが使えないって感じ…

z-orderについて、驚愕の事実

Silverlightやとオブジェクトの表示の前後関係はコントロールがパネルに追加されている順番になります。後で追加されたほうが上に表示されます。この前後関係を自前で Canvas.ZIndex っていう、Canvas の依存関係プロパティの ZIndex で指定することになりま…

コントロールのソースいろいろ

SilverlightのランタイムとSDKのコントロールのソースコードがサンプルとして公開されましたね。ついでに僕がよく見ているコントロールも紹介します。 Sample Source Code for Silverlight 2 Runtime and SDK Controls これは、SilverlightのランタイムとSDK…

x:NameもしくはFindNameの怪 その1

ストーリーボードでスケールを伸ばした後に、コードで戻そうとしたときにへんな挙動が・・・。 Rectangle を伸ばす Storyboardを書こう! まずは Rectangle を置きます。で、それのスケールを Storyboard で伸ばします。 こんな感じ。 <Storyboard x:Name="Storyboard1"> </storyboard>

Silverlightを囲む会 in大阪#5

FxUGさんと共同で開催します! http://silverlightsquare.com/page_1225424487838.html今回は僕はLingrのチャットクライアントを作る予定。Flexで実装されたクライアントとチャットして、その実装の話をします。あまりほかでは聞けないお話ができるかと思い…

Silverlight Tools 日本語版登場

出てました。Visual Studio 2008 SP1 用 Microsoft Silverlight ToolsBlend 2 SP1 の日本語版も。Microsoft Expression Blend™ 2 Service Pack 1

ADO.NET Data Servicesで更新

この間の続き。画面に張り付けてとかはめんどくさいので取ってきていきなり更新してみる。まずはこの間の復習も兼ねて、とってくるところ。 NorthwindEntities context = new NorthwindEntities(new Uri("http://localhost:56378/Northwind.svc", UriKind.Ab…

Silverlight Toolkit

http://www.codeplex.com/Silverlightでてます。この間まではSilverlight Control Pack って名前だったような気がするのですが、変わったのでしょうか?? いや、しかしチャートまで含まれてるのは予想外でした。データグリッドもあるし、チャートもあるしで…

ADO.NET Data Services できるやん・・。

DataSvcUtil.exe を使わなアカンと思ってたんやけど、自動生成できますやん。いつから出来てたんやこれ?? サービス作るところは省略します。こことか参照してください。 サービス参照ですが、 WCF とかと同じように普通にサービス参照を追加するのみです。…

Visual Web Developer 2008 SP1 で Silverlight

Silverlight RC0 の Silverlight Tools から Visual Web Developer をサポートしたということなので試してみました。ついでにほかのことも試してみました。まずはインストール。インストールし終わってふと思いました。 「英語版もいれてみて共存できんのか…

RC0 で変わったちょっとうれしいところ。

Silverlightをホストするプロジェクトのタイプのデフォルトが[Webアプリケーションプロジェクト]になってる!! 毎回変更するのめんどくさかったんですよねぇ。

フレーム単位でイベントを取得

以前に「FrameRate単位でイベントを取得」ってので、Storyboardでいけるって書いたんですが、Silverlight 2 RC0 からは専用のオブジェクトができてました。CompositionTargetってやつです。このCompositionTargetのRenderingイベントでフレームごとのイベン…

Silverlight 2 RC0 インストール完了

英語版のVSには無事インストールできました。 ってことで、さっそく新しいコントロールの ComboBox で Hello world やってみました。 <UserControl x:Class="SilverlightApplication1.Page" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Width="400" Height="300"> </usercontrol>

Silverlight 2 RC0 さっそくインストール

ダメとわかりつつも日本語版の VS でインストールしてみる。 やっぱり怒られた・・・。 が、よく見てみると Visual Web Developer Express 2008 (Engilish) の文字が・・・。とうとうサポートしたのか!?とりあえず、確認は英語版にインストールできた後って…

Silverlight 2 RC0 is available

取り急ぎ。http://silverlight.net/GetStarted/sl2rc0.aspx

RC0 リンク

動いたので次は手持ちのプログラムを更新して、いろいろ試してみます。 とりあえず、情報ソースとしていろんなリンクを。 ダウンロード Breaking Changes リリースノート ScottGu's Blog - Silverlight 2 Release Candidate Now Available 追加で発見したの…

イメージや動画などのアセットの配置(その2):DLLにリソースとして配置

ちょいと間が空いてしまいました。続いてはリソースとして保持して、それを読み出すです。 Visual Studioでの設定ですが、まずは普通にプロジェクトに追加します。これは前のXAPの中に配置するのと同じです。 ここからが違うところで、その配置したファイル…

イメージや動画などのアセットの配置(その1):XAPの中に配置

一番お手軽で分かりやすくって簡単なのはこれだと思います。 XAPの中に配置ってのは、XAPファイルの中にファイルがそのまま置かれてるってことです。なので、XAPファイルをZIPで展開するとファイルがそのまま見えます。 画像では写ってませんが、imageフォル…

イメージや動画などのアセットの配置(その0)

自分自身もよく忘れてしまうので、防備録として書いときます。 イメージや動画などの配置場所は大きく分けて以下の3つ。 XAPの中に配置 DLLにリソースとして配置 Webのコンテンツとして配置 大体これくらいかと思ってますが、ほかにもあればぜひご連絡くだ…