【问题标题】:Trigger doesn't work on ToggleButton.IsChecked property触发器不适用于 ToggleButton.IsChecked 属性
【发布时间】:2014-05-14 22:09:24
【问题描述】:

这是一个带有触发器的简单 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>

【问题讨论】:

    标签: c# wpf xaml togglebutton


    【解决方案1】:

    您通过在控制级别设置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>
    

    【讨论】:

      【解决方案2】:

      您必须将 Content="&amp;lt;"ToggleButton 移动到 Style 的设置器。

      例子:

      <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. 活动动画,或具有 Hold 行为的动画。

        3. Local value.

      3. TemplatedParent 模板属性。

      4. 隐式风格。

        6. Style triggers.

      5. 模板触发器。

        8. Style setters.

      ...

      更多信息,请参见:

      MSDN: Dependency Property Value Precedence

      【讨论】:

        猜你喜欢
        • 2011-07-18
        • 1970-01-01
        • 1970-01-01
        • 2016-01-17
        • 2011-10-28
        • 2020-04-24
        • 2023-03-22
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多