この記事では、メニューが選択されたことを知る方法について説明します。
環境
開発環境 | 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:
コメント