WPF: изменить цвет фона шаблона - PullRequest
2 голосов
/ 19 июля 2010

Я определил шаблон меню, который, по идее, должен использовать фоновый цвет SoliColorBrush «AppBackground», определенный в отдельном файле.

В «режиме отладки» я использую следующий код дляизмените эту переменную: this.Resources ["AppBackground"] = new 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 ]

2 голосов
/ 19 июля 2010

Кажется, что это ошибка ввода: удалите {Binding..., и она работает:

<Grid Background="{DynamicResource AppBackground}"> 

Привязка действует как оболочка между ресурсом и местом назначения и предотвращает отслеживание изменений.

2 голосов
/ 19 июля 2010

Не видел, что вы отметили, что он работает также не с DynamicBinding.Я только посмотрел на код.Вот почему я написал свой первый ответ:

Используйте DynamicBinding, который должен работать.

Реальная проблема вы оборачиваете ресурс через Binding.Удалите это , как я написал в моем другом посте.Извините за хаос с несколькими ответами.

<Grid Background="{DynamicResource AppBackground}">

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...