这是一个带触发器的简单XAML,它应该在检查时更改ToggleButton内容。但由于某种原因,它不起作用。我有一种愚蠢的感觉,我错过了一些特别小的东西。感谢您的帮助
<ToggleButton Content="<">
<ToggleButton.Style>
<Style TargetType="ToggleButton">
<Style.Triggers>
<Trigger Property="IsChecked" Value="True">
<Setter Property="Content" Value=">" />
</Trigger>
</Style.Triggers>
</Style>
</ToggleButton.Style>
</ToggleButton>
答案 0 :(得分:3)
您必须将Content="<"
从 ToggleButton
移至Style
的设置者。
示例:
<ToggleButton>
<ToggleButton.Style>
<Style TargetType="ToggleButton">
<Setter Property="Content" Value="<" />
<Style.Triggers>
<Trigger Property="IsChecked" Value="True">
<Setter Property="Content" Value=">" />
</Trigger>
</Style.Triggers>
</Style>
</ToggleButton.Style>
</ToggleButton>
因为本地值在样式设置器和触发器上有 higher precedence
顺序:
物业系统强制。
动态动画或具有保留行为的动画。
3. Local value.
TemplatedParent模板属性。
隐含的风格。
6. Style triggers.
模板触发器。
8. Style setters.
...
有关详细信息,请参阅:
答案 1 :(得分:2)
您通过在控件级别设置Content
属性来覆盖触发器设置的Content
。您想在样式中使用Setter
来设置它:
<ToggleButton>
<ToggleButton.Style>
<Style TargetType="ToggleButton">
<Setter Property="Content" Value="<" />
<Style.Triggers>
<Trigger Property="IsChecked" Value="True">
<Setter Property="Content" Value=">" />
</Trigger>
</Style.Triggers>
</Style>
</ToggleButton.Style>
</ToggleButton>