我在 xaml 中有一个网格,它为其附加的弹出控件使用资源:
<Grid >
<FlyoutBase.AttachedFlyout>
<StaticResource ResourceKey="GridFlyout"/>
</FlyoutBase.AttachedFlyout>
.. other stuffs
</Grid>
我在页面中有一个定义的资源:
<Page.Resources>
<MenuFlyout x:Key="GridFlyout">
<MenuFlyoutItem Text="delete"/>
<MenuFlyoutItem Text="like"/>
<MenuFlyoutItem Text="edit"/>
</MenuFlyout>
但在某些情况下我想为上面的网格设置以下资源:
<Page.Resources>
<MenuFlyout x:Key="SecondaryGridFlyout">
<MenuFlyoutItem Text="like"/>
</MenuFlyout>
我怎样才能做到这一点?谢谢
最佳答案
如果您只是在代码中执行此操作,这是最简单的(并且完全受支持)。使用附加属性AttachedFlyout
:
FlyoutBase.SetAttachedFlyout(theGrid,
(MenuFlyout) App.Current.Resources["SecondaryGridFlyout"]);
上例中的 theGrid
代表您要更改的Grid
。
<Grid x:Name="theGrid">
<FlyoutBase.AttachedFlyout>
<StaticResource ResourceKey="GridFlyout"/>
</FlyoutBase.AttachedFlyout>
<!-- ... other stuff -->
</Grid>
关于c# - 如何更改 xaml 中定义的资源的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23564189/