未启用时更改按钮背景
本文关键字:按钮 背景 启用 | 更新日期: 2023-09-27 17:53:29
我需要改变我的Button
背景(如SolidColorBrush为例)只有当它不启用(IsEnabled == false
)。
我该怎么办?
我是否要使用XAML修改按钮Style
,或者我可以以编程方式完成这项工作?什么是正确的XAML代码,仅更改背景时,它没有启用?
我尝试了以下XAML代码,但没有效果:
<Button>
<Button.Style>
<Style TargetType="Button">
<Style.Triggers>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Background" Value="Red"></Setter>
</Trigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>
可以通过编辑模板来改变背景。您可以在这里找到Button
的默认模板。
在IsEnabled
的触发器中,您可以简单地添加如下内容:
<Setter Property="Background" Value="{StaticResource DisabledBackgroundBrush}"/>
编辑:
<Window.Resources>
<Style TargetType="{x:Type Button}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Border x:Name="Overlay" CornerRadius="2">
<ContentPresenter/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsEnabled" Value="false">
<Setter TargetName="Overlay" Property="Background" Value="Red"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Window.Resources>
<StackPanel>
<Button Content="Button" IsEnabled="False"/>
</StackPanel>
你可以使用一个样式触发器:
<Image.Style>
<Style>
<Style.Triggers>
<DataTrigger Binding="{Binding IsEnabled}" Value="False">
<Setter Property="Image.Source" Value="pack://application:,,,/disabled.png" />
</DataTrigger>
</Style.Triggers>
</Style>
</Image.Style>