Silverlight

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

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 …