メッセージダイアログとポップアップメニュー (5/5)
作成:2014-02-01 11:51
更新:2014-02-01 11:51
更新:2014-02-01 11:51
■ポップアップメニューを表示する
メッセージダイアログのボタンは、便利ですが、最大3個までしか表示できません。もっとたくさんの項目を表示して何かを実行させたい、というときは、メッセージダイアログよりも「ポップアップメニュー」を利用するのがよいでしょう。
ポップアップメニューは「PopupMenu」というクラスとして用意されています。これは以下のようにインスタンスを作成します。
ポップアップメニューは「PopupMenu」というクラスとして用意されています。これは以下のようにインスタンスを作成します。
PopupMenu 変数= new PopupMenu();作成したら、UICommandをCommandsのAddメソッドで組み込んでいきます。そして、ShowAsyncで表示をします。この辺りの使い方はMessageDialogと同じですが、しかしShowAsyncの引数がちょっと違うので注意が必要です。
《PopupMenu》.ShowAsync(《Point》);引数の「Point」は、位置を示すクラスです。これを利用して、ポップアップメニューを表示する位置を指定するのですね。このPointは、縦横の位置をdoubleで指定してインスタンスを作成します。
Point 変数 = new Point( 横位置 , 縦位置 );では、下に利用例を挙げておきましょう。ボタンを押すと、画面の左上にポップアップメニューが現れます。ここからメニューを選ぶと、それに応じたメッセージがTextBlockに表示されます。UICommandを使いますので、基本的な処理の仕方はMessageDialogと同じですからすぐにわかることでしょう。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Runtime.InteropServices.WindowsRuntime; using System.Threading.Tasks; using Windows.Foundation; using Windows.Foundation.Collections; using Windows.UI.Popups; using Windows.UI.Xaml; using Windows.UI.Xaml.Controls; using Windows.UI.Xaml.Controls.Primitives; using Windows.UI.Xaml.Data; using Windows.UI.Xaml.Input; using Windows.UI.Xaml.Media; using Windows.UI.Xaml.Navigation; // 空白ページのアイテム テンプレートについては、http://go.microsoft.com/fwlink/?LinkId=234238 を参照してください namespace MyWin8App { /// <summary> /// それ自体で使用できる空白ページまたはフレーム内に移動できる空白ページ。 /// </summary> public sealed partial class MainPage : Page { public MainPage() { this.InitializeComponent(); } private async void button1_click(object sender, RoutedEventArgs e) { string msg = "Hello, " + textbox1.Text + "!"; PopupMenu menu = new PopupMenu(); for(int i = 1;i <= 3;i++) { menu.Commands.Add(new UICommand("No," + i)); } IUICommand cmd = await menu.ShowAsync(new Point(100,100)); textblock1.Text = cmd.Label + "を選んだね。"; } } }
※関連コンテンツ