У меня есть кнопка, для которой я хочу использовать динамический цвет, если файл существует.
Я использую два ресурса для этого, один ресурс - цвет, а другой - SolidColorBrush.Они объявлены как
<Window.Resources>
<Color x:Key="ColorName">Red</Color>
<SolidColorBrush x:Key="ButtonColor1" Color="{StaticResource ColorName}" />
</Window.Resources>
Теперь моя кнопка выполнена странным образом, так как я хотел изменить цвет подсветки, это сделано так:
Button Grid.Row="1" Grid.Column="2" Height="25" Width="25"
HorizontalAlignment="Center" VerticalAlignment="Center" Click="Button_Click"
Name="SalutButton">
<Button.Style>
<Style TargetType="{x:Type Button}">
<Setter Property="Background" Value="{StaticResource
ButtonColor1}"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Border Background="{TemplateBinding Background}" BorderBrush="Black" BorderThickness="1">
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="LightGreen"/>
</Trigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>
Мой код, чтобы попробоватьи изменить ресурс:
Resources["ColorName"] = System.Windows.Media.Colors.Green;
Это успешно изменяет имя цвета ресурса, но ресурс buttoncolor1 уже создан во время инициализации и принимает цвет по умолчанию colorname, который является красным, так что, хотя я меняю ресурс, егоне обновляется.
Есть идеи?