我有一个浮出控件,我想在多个类中重复使用。
<CommandBarFlyout x:Name="BasicFlyout"
AlwaysExpanded="True"
x:Key="ImageContextMenu">
<CommandBarFlyout.SecondaryCommands>
<AppBarButton x:Name="1"
Label="A"/>
<AppBarButton x:Name="2"
Label="B"/>
<AppBarButton x:Name="3"
Label="C"/>
<AppBarButton x:Name="4"
Label="D"/>
</CommandBarFlyout.SecondaryCommands>
</CommandBarFlyout>
我需要为最多 120 个图像附加唯一的按钮组合,并且每个图像都有一个关联的状态类,其中包含每个按钮是否可见的布尔标志以及每个按钮的回调(将在代码隐藏。
理想情况下,它看起来像这样,尽管语法是关闭的。
CommandBarFlyout flyout = new Resources["ImageContextMenu"] as CommandBarFlyout;
// Set visibility and callbacks
FlyoutBase.SetAttachedFlyout(image, flyout);
问题是我不知道如何在 XAML 中声明它。看起来代码必须添加到整个项目的资源中,但我不知道该怎么做。资源字典不允许我使用 CommandBarFlyout 作为根元素。
正如你所说,资源字典似乎不允许我们使用CommandBarFlyout作为根元素。
我建议你可以尝试在
StackPanel.Resources
中添加CommandBarFlyout。然后你可以尝试使用 {StaticResource} 标记扩展
喜欢:
<Button x:Name="myButton" Click="myButton_Click" FlyoutBase.AttachedFlyout="{StaticResource ImageContextMenu}">Click Me</Button>
或者使用 {x:Bind} 标记扩展
喜欢:
<Button x:Name="myButton" Click="myButton_Click" FlyoutBase.AttachedFlyout="{x:Bind BasicFlyout}">Click Me</Button>