WPF-当Command.CanExecute为false时更改按钮控件模板背景
情景: 使用按钮的默认实现时,以下功能起作用: 当CanExecute命令为true->时,按钮处于启用状态,且按钮背景未更改 当CanExecute命令为false->按钮被禁用,背景为“灰色” 但是当使用按钮控制模板样式时且CanExecute为false->按钮按预期禁用,但背景未更改。 如何更改控件模板按钮的背景 图片:WPF-当Command.CanExecute为false时更改按钮控件模板背景,wpf,mvvm,controltemplate,Wpf,Mvvm,Controltemplate,情景: 使用按钮的默认实现时,以下功能起作用: 当CanExecute命令为true->时,按钮处于启用状态,且按钮背景未更改 当CanExecute命令为false->按钮被禁用,背景为“灰色” 但是当使用按钮控制模板样式时且CanExecute为false->按钮按预期禁用,但背景未更改。 如何更改控件模板按钮的背景 图片: 控制模板: 重新设置控件模板时,所有可视状态都应由您自己管理。在这种情况下,禁用状态将被忽略。如果IsEnabled为false,使用Trigger更改背景的简单方法
控制模板:
重新设置控件模板时,所有可视状态都应由您自己管理。在这种情况下,禁用状态将被忽略。如果IsEnabled
为false,使用Trigger
更改背景的简单方法如下:
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Opacity" Value="0.8" />
</Trigger>
<Trigger Property="IsEnabled" Value="False">
<Setter TargetName="border" Property="Background" Value="Gray"/>
</Trigger>
</ControlTemplate.Triggers>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Opacity" Value="0.8" />
</Trigger>
<Trigger Property="IsEnabled" Value="False">
<Setter TargetName="border" Property="Background" Value="Gray"/>
</Trigger>
</ControlTemplate.Triggers>