我想在WPF中更改按钮的背景颜色和路径的填充颜色。颜色值应根据Button的IsEnabled属性的当前状态进行更新。
(如果按钮被禁用,我想创建深灰色的背景颜色;如果按钮被禁用,我想将“路径”的“填充”颜色更新为浅灰色;如果按钮被启用,则“背景”和“填充”颜色应与当前颜色相同)
我知道这可以通过某些转换器来完成...。但是,仅通过使用Blend(状态和触发器),我可以更轻松地做到这一点吗?如果是这样,请让我知道如何?
答案 0 :(得分:0)
如果您使用触发器要求,我已经覆盖了默认样式并将背景颜色更改为DarkGray
。其余,我使用TemplateBinding
<Button x:Name="Button1" Content="Login" HorizontalAlignment="Left" Height="31" Margin="10,41,0,-41" Grid.Row="1" VerticalAlignment="Top" Width="129" Click="Button_Click_1">
<Button.Style>
<Style TargetType="Button">
<Style.Triggers>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="OverridesDefaultStyle" Value="True" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Grid Background="{TemplateBinding Background}">
<ContentPresenter x:Name="MyContentPresenter"
Content="{TemplateBinding Content}"
HorizontalAlignment="Center"
VerticalAlignment="Center" />
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
<Setter Property="Background" Value="DarkGray"></Setter>
</Trigger>
<Trigger Property="IsEnabled" Value="True">
<Setter Property="Background" Value="#FFDDDDDD"></Setter>
</Trigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>