我已经定义了一个菜单模板,从理论上讲,它应该使用在单独文件中定义的“ AppBackground” SoliColorBrush的背景色。
在“调试模式”下,我使用以下代码更改该变量:
this.Resources [“ AppBackground”] =新的SolidColorBrush(Colors.DarkGreen);
这对应用程序背景有预期的影响,但是,对我的自定义菜单设计似乎没有影响。我试图同时使用StaticResource和DynamicResource,但没有任何运气。这是一个已知问题,这里有技巧吗?
在ResourceDirectory中定义:
<SolidColorBrush x:Key="AppBackground" Color="#003466"/>
在文件中定义:
<Style x:Key="{x:Type MenuItem}" TargetType="{x:Type MenuItem}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type MenuItem}">
<Border x:Name="Border" BorderThickness="1">
<Grid Background="{Binding Source={StaticResource AppBackground}}">
最佳答案
Havent看到您标记了它也不适用于DynamicBinding。我只看了代码。这就是为什么我写第一个答案的原因:
使用DynamicBinding,应该可以。
您通过绑定包装资源的实际问题。删除它,就像我在其他帖子中写的那样。对不起,有多个答案的混乱情况。<Grid Background="{DynamicResource AppBackground}">
关于c# - WPF:更改模板的背景色,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3280206/