WPF:更改模板的背景颜色

时间:2010-07-19 10:24:55

标签: c# wpf menu

我已经定义了一个菜单模板,理论上应该使用在单独文件中定义的“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}}">

2 个答案:

答案 0 :(得分:2)

没有看到你标记它也不适用于DynamicBinding。我只看了代码。这就是我写第一个答案的原因:

使用DynamicBinding,它应该可以工作。

真正的问题你通过Binding包装资源。正如我在其他帖子中写的那样删除此。对不起有多个答案的混乱。

<Grid Background="{DynamicResource AppBackground}">

答案 1 :(得分:2)

这似乎是输入错误:删除{Binding...并且它有效:

<Grid Background="{DynamicResource AppBackground}"> 

绑定充当资源和目标之间的包装器,并阻止跟踪更改。