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

10-17 01:14