MessageBox に馴染んでいる人も多いと思うので、とりあえず使うために。( MessageDialog を使うと結構面倒なので )
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Windows.UI.Popups; namespace LBOX_Http { class MessageBox { // ********************************************************** // 選択肢を応答するダイアログ // ********************************************************** public static async Task<bool> ShowAsync(string title, string message, UICommandInvokedHandler handler) { var messageDialog = new MessageDialog(message, title); // イベントを定義する var OK_Handler = new UICommandInvokedHandler(handler); var OK_Command = new UICommand("YES", OK_Handler) { Id = 0 }; messageDialog.Commands.Add(OK_Command); // イベントを定義する var CANCEL_Handler = new UICommandInvokedHandler(handler); var CANCEL_Command = new UICommand("NO", CANCEL_Handler) { Id = 1 }; messageDialog.Commands.Add(CANCEL_Command); // Enter キーで反応するデフォルトボタン messageDialog.DefaultCommandIndex = 1; // ESC キーで反応するキャンセルボタン messageDialog.CancelCommandIndex = 1; await messageDialog.ShowAsync(); return true; } // ********************************************************** // 確認をするだけのダイアログ // ********************************************************** public static async Task<bool> ShowAsync(string title, string message) { var messageDialog = new MessageDialog(message, title); // OK ボタンのイベントを定義する var OK_Command = new UICommand("OK", (command) => { }); messageDialog.Commands.Add(OK_Command); // Enter キーで反応するデフォルトボタン messageDialog.DefaultCommandIndex = 0; // ESC キーで反応するキャンセルボタン messageDialog.CancelCommandIndex = 0; await messageDialog.ShowAsync(); return true; } } }
▼ 使用方法
// ************************************************* // 保存ボタン // ************************************************* private async void SaveButton_Click(object sender, RoutedEventArgs e) { if (MyCode.Text.Trim() == "") { await MessageBox.ShowAsync("入力確認","データが入力されていません"); return; } await MessageBox.ShowAsync("処理確認","データを保存しますか?", (IUICommand command) => { // ボタンの応答 if (command.Id.Equals(0)) { Debug.WriteLine("YES"); } if (command.Id.Equals(1)) { Debug.WriteLine("NO"); } }); }
ラムダ式で使用しています
|
【Win8 ストアアプリの最新記事】
- C# : HttpClient で Post と Get する汎用 static クラス
- Win8.1 ストアアプリ(JS) : Visual Studio 2013 で Three.js(v65) の WebGLRenderer の動作を確認しました
- WinJS ストア : Three.js を組み込んで、『画像を飛ばす』テンプレート( Bird.js を利用 )
- WinJS ストア : 『背景画像をチェンジする2画面アプリ』のテンプレート
- VS2012ストア(C#) : WebView テンプレート
- VS2012(C#)ストア : ListView Twitter 検索テンプレート
- イラストを背景にして2ページの画面遷移を解りやすくした Windows Store テンプレート
- Twitter API の自分のアプリのトークンを使って投稿するだけの class VS2012_Twitter
- Win8 ストア(C#) / PDF viewer sample (Windows 8.1)
- ストアアプリの TextBox のスクロールバー
- Win8 ストアアプリの、メモリ上にページを残す画面遷移と、前画面のコントロールの参照
- Win8 ストアから Post 投稿
- Win8ストア XAML の AppBarButtonStyle のContent に指定する 16進数 Unicode の取得
- Win8 ストア : UrlEncode と UrlDecode
- Win8 ストア : HttpClient + XDocument で RSS の取得
- Win8 ストア : リストボックス テンプレート
- Win8 ストア : ファイルアクセス テンプレート
- Win8 ストア : ストアブランク テンプレート
- AppBar テンプレート / Win8 ストアアプリ(C#)
- Windows ストアアプリの AppBar を作成してテストする