SQLの窓

2013年06月10日


Win8 ストアアプリで、『選択肢を応答するダイアログ』を簡単に使うための MessageBox クラス

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 ストアアプリの最新記事】
posted by lightbox at 2013-06-10 20:00 | Win8 ストアアプリ | このブログの読者になる | 更新情報をチェックする
container 終わり



フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

CSS ドロップシャドウの参考デモ
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり