かずきのBlog@hatena

日本マイクロソフトに勤めています。XAML + C#の組み合わせをメインに、たまにASP.NETやJavaなどの.NET系以外のことも書いています。掲載内容は個人の見解であり、所属する企業を代表するものではありません。

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

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

追記
見た目変えてみた