为什么不使用IsThreeState
设置为的 ToggleButton true
?
<ToggleButton IsThreeState="True">
<ToggleButton.Style>
<Style TargetType="ToggleButton">
<Style.Triggers>
<Trigger Property="IsChecked" Value="True">
<Setter Property="Content" Value="{StaticResource TbCheckedContent}"/>
</Trigger>
<Trigger Property="IsChecked" Value="False">
<Setter Property="Content" Value="{StaticResource TbUncheckedContent}"/>
</Trigger>
<Trigger Property="IsChecked" Value="{x:Null}">
<Setter Property="Content" Value="{StaticResource TbNullContent}"/>
</Trigger>
</Style.Triggers>
</Style>
</ToggleButton.Style>
</ToggleButton>
更新我想我没有仔细阅读你的问题。您当然可以对按钮IsPressed
和IsEnabled
属性执行与上述类似的操作:
<Button>
<Button.Style>
<Style TargetType="Button">
<Style.Triggers>
<Trigger Property="IsPressed" Value="True">
<Setter Property="Content" Value="{StaticResource ButtonPressedContent}"/>
</Trigger>
<Trigger Property="IsPressed" Value="False">
<Setter Property="Content" Value="{StaticResource ButtonNormalContent}"/>
</Trigger>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Content" Value="{StaticResource ButtonDisabledContent}"/>
</Trigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>
但是,您可以查看VisualStates,然后查看按钮样式和模板,以了解如何在按钮的 ControlTemplate 中可视化这些状态。