繁体   English   中英

触发器在ToggleButton.IsChecked属性上不起作用

[英]Trigger doesn't work on ToggleButton.IsChecked property

这是带有触发器的简单XAML,应在选中后更改ToggleButton的内容。 但是由于某种原因,它不起作用。 我很傻,觉得自己错过了一些小东西。 感谢您的帮助

<ToggleButton Content="&lt;">
    <ToggleButton.Style>
        <Style TargetType="ToggleButton">
            <Style.Triggers>
                <Trigger Property="IsChecked" Value="True">
                    <Setter Property="Content" Value="&gt;" />
                </Trigger>
            </Style.Triggers>
        </Style>
    </ToggleButton.Style>
</ToggleButton>

您必须移动Content="&lt;" ToggleButtonStyle setter。

例:

<ToggleButton>
    <ToggleButton.Style>
        <Style TargetType="ToggleButton">
            <Setter Property="Content" Value="&lt;" />

            <Style.Triggers>
                <Trigger Property="IsChecked" Value="True">
                    <Setter Property="Content" Value="&gt;" />
                </Trigger>
            </Style.Triggers>
        </Style>
    </ToggleButton.Style>
</ToggleButton>

由于局部值的higher precedence级高于样式设置器和触发器的顺序:

  1. 财产制度的强制。

  2. 活动动画或具有“保持”行为的动画。

    3. Local value.

  3. TemplatedParent模板属性。

  4. 隐式风格。

    6. Style triggers.

  5. 模板触发器。

    8. Style setters.

...

有关更多信息,请参见:

MSDN: Dependency Property Value Precedence

要覆盖Content通过设置在触发设定Content的控制级别属性。 你想使用设置它Setter的风格,而不是内:

<ToggleButton>
    <ToggleButton.Style>
        <Style TargetType="ToggleButton">
         <Setter Property="Content" Value="&lt;" />
            <Style.Triggers>
                <Trigger Property="IsChecked" Value="True">
                    <Setter Property="Content" Value="&gt;" />
                </Trigger>
            </Style.Triggers>
        </Style>
    </ToggleButton.Style>
</ToggleButton>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM