我只需在未启用时Button
背景(例如SolidColorBrush)(IsEnabled == false
)。我该怎么办?
我是否要使用XAML修改Button 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>
答案 0 :(得分:7)
您可以通过编辑模板来更改背景。您会找到Button
here的默认模板。
在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>
只需更改它以满足您的需求。
答案 1 :(得分:-1)
您可以使用样式触发器:
<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>