かずきのBlog@hatena

すきな言語は C# + XAML の組み合わせ。Azure Functions も好き。最近は Go 言語勉強中。日本マイクロソフトで働いていますが、ここに書いていることは個人的なメモなので会社の公式見解ではありません。

AppBarのボタンを押したときに確認用のフライアウトを出す部品作って放流してみた

2012/08/26 追記
↓ソフトウェアキーボード対応版作りました。
http://d.hatena.ne.jp/okazuki/20120826/FlyoutDeepDive

このページのクラスは対応してないです…
RC版での情報です

凄い用途限定的で大して使いこんでないので、バグあるはず…!!しかも、今日VS2012の正式版が手に入るというのにRC版で先走った…!

使い方

プロジェクトを作成します。ここではBlank Appにしました。そして、MainPage.xamlをBlendで開いてBottomAppBarを追加します。ついでにボタンも何個か置いておきます。

nugetでWinRT.Confirm.Flyoutで検索すると出てきます。

AppBarのボタンのクリックイベントハンドラに以下のようなコードを書いてみましょう。

private async void Button_Click_1(object sender, RoutedEventArgs e)
{
    var c = new ConfirmFlyout("追加しますか");
    // 追加したいボタンの数だけUICommandを設定する
    c.Commands.Add(new UICommand("OK", _ =>
    {
        this.textBlockMessage.Text = "追加したよ";
    }));
    // ShowAsyncで表示する。第一引数はAppBarのボタン
    var command = await c.ShowAsync(
        (Button)sender);
    // 戻り値は押したボタンに対応するUICommand
    if (command == null)
    {
        var dlg = new MessageDialog("逃げたな");
        await dlg.ShowAsync();
    }
}

こんな感じに表示されます。

追記
見た目変えてみた