この記事では DropDownButton でアイテムが検知されたことを知る方法について説明をします。
環境
| 開発環境 | Microsoft Visual Studio Enterprise 2019 Version 16.11.5 |
| Framework | Microsoft .NET Framewohttps://blog.hiros-dot.net/?p=11007rk Version 4.8.04161 |
アイテムがクリックされたことを検知する
DropDownButton のアイテムがクリックされたことを検知するには、Click イベントを使用します。
以下は、DropDownItem のそれぞれのアイテム(MenuFlyoutItem)の tag プロパティに、ボタンの意味を表す文字列を設定しておき、Click イベントの中で tag の文字列を確認するようにしています。これにより、どのアイテムがクリックされたのかを検知することができます。
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">
<StackPanel Orientation="Vertical" HorizontalAlignment="Center">
<TextBlock x:Name="myTextBlock" />
<DropDownButton ToolTipService.ToolTip="Alignment">
<TextBlock FontSize="14" Text="Alignment"/>
<DropDownButton.Flyout>
<MenuFlyout Placement="BottomEdgeAlignedLeft">
<MenuFlyoutItem Text="Left" Icon="AlignLeft" Tag="left"
Click="AlignmentMenuFlyoutItem_Click"/>
<MenuFlyoutItem Text="Center" Icon="AlignCenter" Tag="center"
Click="AlignmentMenuFlyoutItem_Click"/>
<MenuFlyoutItem Text="Right" Icon="AlignRight" Tag="right"
Click="AlignmentMenuFlyoutItem_Click"/>
</MenuFlyout>
</DropDownButton.Flyout>
</DropDownButton>
</StackPanel>
</Window>
C#の例
private void AlignmentMenuFlyoutItem_Click(object sender, RoutedEventArgs e)
{
var tag = ((MenuFlyoutItem)sender).Tag.ToString();
var msg = string.Empty;
switch (tag)
{
case "left":
msg = "Left";
break;
case "center":
msg = "Center";
break;
case "right":
msg = "right";
break;
}
myTextBlock.Text = msg;
}
WinUi Tips
本サイトでまとめている WinUI Tips の一覧はこちらから確認できます。
Please follow and like us:


コメント