メッセージダイアログとポップアップメニュー (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 + "を選んだね。";
}
}
}
※関連コンテンツ