gpt4 book ai didi

c# - 如何更改 xaml 中已定义资源的值?

转载 作者:太空宇宙 更新时间:2023-11-03 10:45:33 25 4
gpt4 key购买 nike

我在 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com