programing

WPF에서는 트리거 순서가 중요합니까?

elecom 2023. 4. 28. 20:11
반응형

WPF에서는 트리거 순서가 중요합니까?

저는 다음과 같은 xaml을 가지고 있습니다.

<DockPanel>
    <DockPanel.Resources>
        <Style TargetType="Button">
            <Style.Triggers>
                <Trigger Property="IsMouseOver" Value="True">
                    <Setter Property="Foreground" Value="Yellow"></Setter>
                </Trigger>
                <Trigger Property="IsPressed" Value="True">
                    <Setter Property="Foreground" Value="Green"></Setter>
                </Trigger>
            </Style.Triggers>
        </Style>
    </DockPanel.Resources>
    <Button Content="Cut" Height="30" Width="75"/>
</DockPanel>

버튼 위에 마우스를 놓으면 전경이 노란색으로 바뀌고 버튼을 누르면 전경이 녹색으로 바뀝니다.

XAML에서 트리거 순서를 반대로 하면 마우스를 위에 놓으면 전경이 노란색으로 바뀌지만 버튼을 눌러도 전경이 녹색으로 바뀌지 않습니다.

이것에 대한 설명은 무엇입니까?하나의 트리거가 다른 트리거보다 우선합니까?

WPF가 선언된 순서로 트리거를 처리하고 있습니다.두 번째 예에서는 전경이 녹색으로 잠시 변경됩니다.그러나 IsMouseOver 트리거가 실행되고 색상이 다시 노란색으로 설정됩니다.

IsMouseOver는 우선 순위 측면에서 IsPressed와 관련이 없습니다.중요한 것은 트리거의 XAML 선언 순서입니다.

요약: 트리거는 순서대로 처리됩니다.

이후 트리거는 이전 트리거를 재정의합니다.

언급URL : https://stackoverflow.com/questions/561178/in-wpf-does-the-order-of-triggers-matter

반응형