この記事では、メニューが選択されたことを知る方法について説明します。
環境
| 開発環境 | Microsoft Visual Studio Enterprise 2019 Version 16.11.5 |
| Framework | Microsoft .NET Framework Version 4.8.04161 |
メニューが選択されたことを知る
メニューの項目は、MenuFlyoutItem で作成することができますが、「選択された」ということを知りたい場合は、Click イベントを使用します。
以下は 「ファイル」配下にある「新規」「開く」「保存」「終了」の Click イベントを作成し、メニューが選択された時にメッセージを表示する例です。
XAML の例
<Window
x:Class="WinUIAppSample.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:WinUIAppSample"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d">
<StackPanel VerticalAlignment="Top" HorizontalAlignment="Left">
<MenuBar>
<MenuBarItem Title="ファイル">
<MenuFlyoutItem x:Name="menuFileNew" Text="新規" Click="MenuFlyoutItem_Click"/>
<MenuFlyoutItem x:Name="menuFileOpen" Text="開く..." Click="MenuFlyoutItem_Click"/>
<MenuFlyoutItem x:Name="menuFileSave" Text="保存" Click="MenuFlyoutItem_Click"/>
<MenuFlyoutSeparator />
<MenuFlyoutItem x:Name="menuFileExit" Text="終了" Click="MenuFlyoutItem_Click"/>
</MenuBarItem>
</MenuBar>
<StackPanel>
</StackPanel>
</StackPanel>
</Window>
C# の例
private async void MenuFlyoutItem_Click(object sender, RoutedEventArgs e)
{
var msg = "";
switch (((MenuFlyoutItem)sender).Name)
{
case "menuFileNew":
msg = "「新規」が選択されました。";
break;
case "menuFileOpen":
msg = "「開く」が選択されました。";
break;
case "menuFileSave":
msg = "「保存」が選択されました。";
break;
case "menuFileExit":
msg = "「終了」が選択されました。";
break;
}
ContentDialog myDialog = new ContentDialog
{
Title = "メニュー選択",
Content = msg,
CloseButtonText = "OK"
};
myDialog.XamlRoot = this.Content.XamlRoot;
ContentDialogResult result = await myDialog.ShowAsync();
}
Please follow and like us:


コメント