Windows Phone Toolkit September 2012で追加されたコントロールを眺めていきます。
デザインが修正されているコントロールは多数ありますが、それは置いておきます。
今回のアップデートで追加されたコントロールは次の2つ。
- CustomMessageBox
- Rating
まずはCusomMessageBoxから。
標準のMessageBox クラスでは、複雑なダイアログを表示できません。例えばこんなの。
キャンセルと再試行の2つを持ったメッセージや、YES/NOのメッセージなど表示させたいことは多々あります。そこで、今回追加されたCustomMessageBoxを使用します。このクラスを使うと、OS標準のMessageBoxでは表示出来ないようなメッセージダイアログを表示することが出来ます。
まずは使い方から。このコントロールは、XAMLは使用せずにコードから呼び出します。
void func() { CustomMessageBox mb = new CustomMessageBox(); mb.Title = "title"; mb.Caption = "caption"; mb.Message = "message"; mb.LeftButtonContent = "YES!!!!!"; mb.RightButtonContent = "NO!"; mb.Show(); }
ダイアログの戻り値はイベントで取得します。いまいちいけてないですね。
void func2() { CustomMessageBox mb = new CustomMessageBox(); mb.Title = "title"; mb.Caption = "caption"; mb.Message = "message"; mb.LeftButtonContent = "YES!!!!!"; mb.RightButtonContent = "NO!"; //mb.Dismissing += mb_Dismissing; // 閉じる瞬間 mb.Dismissed += mb_Dismissed; // 閉じたあと mb.Show(); } void mb_Dismissed(object sender, DismissedEventArgs e) { MessageBox.Show(string.Format("Result = {0}", e.Result)); void mb_Dismissing(object sender, DismissingEventArgs e) { // なにもしない }
Rxでラップしてみようかとも思ってみたけどやっぱり微妙だったのでやめました。
また、オプションとしてフルスクリーンにすることが出来ます。
void func3() { CustomMessageBox mb = new CustomMessageBox(); mb.Title = "title"; mb.Caption = "caption"; mb.Message = "message"; mb.LeftButtonContent = "YES!!!!!"; mb.RightButtonContent = "NO!"; mb.IsFullScreen = true; mb.Show(); }
見慣れた☆の並ぶあれですね。こっちはXAMLでかきます。
<toolkit:Rating />
値はValueプロパティで設定/参照できます。
使い古された感じのあるコントロールなので省略。