我已经定义了一个菜单模板,理论上应该使用在单独文件中定义的“AppBackground”SoliColorBrush的backgroundcolor。
在“调试模式”下,我使用以下代码更改该变量: 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}}">
答案 0 :(得分:2)
没有看到你标记它也不适用于DynamicBinding。我只看了代码。这就是我写第一个答案的原因:
使用DynamicBinding,它应该可以工作。
真正的问题你通过Binding包装资源。正如我在其他帖子中写的那样删除此。对不起有多个答案的混乱。
<Grid Background="{DynamicResource AppBackground}">
答案 1 :(得分:2)
这似乎是输入错误:删除{Binding...
并且它有效:
<Grid Background="{DynamicResource AppBackground}">
绑定充当资源和目标之间的包装器,并阻止跟踪更改。