tmytのらくがき

個人の日記レベルです

Windows Phone Toolkitに増えた機能の使い方

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();
}

フルスクリーンにすると、このような表示になります。

次にRatingです。こんなん。

見慣れた☆の並ぶあれですね。こっちはXAMLでかきます。

<toolkit:Rating />

値はValueプロパティで設定/参照できます。

使い古された感じのあるコントロールなので省略。