[WinUI 3][CommandBarFlyout] コマンドメニューでメニュー項目が選択されたことを知る

スポンサーリンク

この記事では、CommandBarFlyout で、メニュー項目が選択されたことを知る方法について説明します。

環境

開発環境 Microsoft Visual Studio Enterprise 2019
Version 16.11.5
Framework Microsoft .NET Framework Version 4.8.04161

メニューが選択されたことを知る

メニューの項目が「選択された」ということを知りたい場合は、AppBarButton の Click イベントを使用します。

以下は コマンドバーに「切り取り」「コピー」「貼り付け」の3つのメニュー項目を表示し、選択された時に TextBlock にメッセージを表示する例です。

XAML の例

<Window
    x:Class="WinUISample.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:WinUISample"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d">
    <Grid>
        <Grid.Resources>
            <CommandBarFlyout x:Name="ImageCommandsFlyout">
                <AppBarButton Icon="Cut" Click="MenuCut_Click"/>
                <AppBarButton Icon="Copy" Click="MenuCopy_Click" />
                <AppBarButton Icon="Paste" Click="MenuPaste_Click" />
            </CommandBarFlyout>
        </Grid.Resources>
        <StackPanel Orientation="Vertical" HorizontalAlignment="Center">
            <Image Source="Assets/DSC_0355.JPG" Width="300"
           FlyoutBase.AttachedFlyout="{x:Bind ImageCommandsFlyout}"
           ContextFlyout="{x:Bind ImageCommandsFlyout}"/>

            <TextBlock x:Name="myTextBlock"/>
        </StackPanel>
    </Grid>
</Window>

C# の例

private void MenuCut_Click(object sender, RoutedEventArgs e)
{
    myTextBlock.Text = "切り取り";
}

private void MenuCopy_Click(object sender, RoutedEventArgs e)
{
    myTextBlock.Text = "コピー";
}

private void MenuPaste_Click(object sender, RoutedEventArgs e)
{
    myTextBlock.Text = "貼り付け";
}
メニューが選択されたことを知る例

メニューが選択されたことを知る例

Please follow and like us:

コメント

タイトルとURLをコピーしました