如何在xaml中更改已定义资源的值
本文关键字:定义 资源 xaml | 更新日期: 2023-09-27 18:02:29
我在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>