我有一个按钮,我希望根据文件是否存在来获得动态颜色。
我使用两个资源来执行此操作,一个资源是一种颜色,一个是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的默认颜色,即红色,所以即使我正在更改资源而不更新。
有什么想法吗?