簡體   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