다음을 통해 공유


Xamarin.Forms 이중 화면 트리거

Xamarin.Forms.DualScreen 네임스페이스에는 다음 두 가지 상태 트리거가 포함되어 있습니다.

  • SpanModeStateTrigger는 연결된 레이아웃의 보기 모드가 변경될 때 VisualState 변경을 트리거합니다.
  • WindowSpanModeStateTrigger는 창의 보기 모드가 변경될 때 VisualState 변경을 트리거합니다.

상태 트리거에 대한 자세한 내용은 상태 트리거를 참조하세요.

범위 모드 상태 트리거

SpanModeStateTrigger는 연결된 레이아웃의 범위 모드가 변경될 때 VisualState 변경을 트리거합니다. 이 트리거에는 바인딩 가능한 속성이 하나 있습니다.

참고 항목

SpanModeStateTriggerStateTriggerBase 클래스에서 파생되므로 이벤트 처리기를 IsActiveChanged 이벤트에 연결할 수 있습니다.

다음 XAML 예제에서는 SpanModeStateTrigger 개체를 포함하는 Grid을 보여 줍니다.

<Grid>
    <VisualStateManager.VisualStateGroups>
        <VisualStateGroup>
            <VisualState x:Name="GridSingle">
                <VisualState.StateTriggers>
                    <dualScreen:SpanModeStateTrigger SpanMode="SinglePane"/>
                </VisualState.StateTriggers>
                <VisualState.Setters>
                    <Setter Property="BackgroundColor" Value="Green" />
                </VisualState.Setters>
            </VisualState>
            <VisualState x:Name="GridWide">
                <VisualState.StateTriggers>
                    <dualScreen:SpanModeStateTrigger SpanMode="Wide" />
                </VisualState.StateTriggers>
                <VisualState.Setters>
                    <Setter Property="BackgroundColor" Value="Red" />
                </VisualState.Setters>
            </VisualState>
            <VisualState x:Name="GridTall">
                <VisualState.StateTriggers>
                    <dualScreen:SpanModeStateTrigger SpanMode="Tall" />
                </VisualState.StateTriggers>
                <VisualState.Setters>
                    <Setter Property="BackgroundColor" Value="Purple" />
                </VisualState.Setters>
            </VisualState>
        </VisualStateGroup>
    </VisualStateManager.VisualStateGroups>
    ...
</Grid>

이 예제에서 시각적 상태는 Grid 개체에 설정됩니다. 하나의 창만 표시되는 경우 Grid의 배경색이 녹색이고, 창이 나란히 표시되는 경우 빨간색이며, 창이 위아래로 표시되는 경우 자주색입니다.

창 범위 모드 상태 트리거

WindowSpanModeStateTrigger는 창의 범위 모드가 변경될 때 VisualState 변경을 트리거합니다. 이 트리거에는 바인딩 가능한 속성이 하나 있습니다.

참고 항목

WindowSpanModeStateTriggerStateTriggerBase 클래스에서 파생되므로 이벤트 처리기를 IsActiveChanged 이벤트에 연결할 수 있습니다.

다음 XAML 예제에서는 WindowSpanModeStateTrigger 개체를 포함하는 Grid을 보여 줍니다.

<Grid>
    <VisualStateManager.VisualStateGroups>
        <VisualStateGroup>
            <VisualState x:Name="NotSpanned">
                <VisualState.StateTriggers>
                    <dualScreen:WindowSpanModeStateTrigger SpanMode="SinglePane"/>
                </VisualState.StateTriggers>
                <VisualState.Setters>
                    <Setter Property="BackgroundColor" Value="Red" />
                </VisualState.Setters>
            </VisualState>
            <VisualState x:Name="Spanned">
                <VisualState.StateTriggers>
                    <dualScreen:WindowSpanModeStateTrigger SpanMode="Wide" />
                </VisualState.StateTriggers>
                <VisualState.Setters>
                    <Setter Property="BackgroundColor" Value="Green" />
                </VisualState.Setters>
            </VisualState>
                <VisualState x:Name="Tall">
                    <VisualState.StateTriggers>
                        <dualScreen:WindowSpanModeStateTrigger SpanMode="Tall" />
                    </VisualState.StateTriggers>
                    <VisualState.Setters>
                        <Setter Property="BackgroundColor" Value="Yellow" />
                    </VisualState.Setters>
                </VisualState>
        </VisualStateGroup>
    </VisualStateManager.VisualStateGroups>
    ...
</Grid>    

이 예제에서 시각적 상태는 Grid 개체에 설정됩니다. 하나의 창만 표시되는 경우 Grid의 배경색이 빨간색이고, 창이 나란히 표시되는 경우 녹색이며, 창이 위아래로 표시되는 경우 노란색입니다.