共用方式為


Xamarin.Forms 雙螢幕觸發程式

命名空間 Xamarin.Forms.DualScreen 包含兩個狀態觸發程式:

如需狀態觸發程式的詳細資訊,請參閱 狀態觸發程式

跨模式狀態觸發程式

當附加版面配置範圍模式變更時,會 SpanModeStateTrigger 觸發 VisualState 變更。 此觸發程序具有單一可繫結屬性:

注意

SpanModeStateTrigger 衍生自 StateTriggerBase 類別,因此可將事件處理常式附加至 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 變更。 此觸發程序具有單一可繫結屬性:

注意

WindowSpanModeStateTrigger 衍生自 StateTriggerBase 類別,因此可將事件處理常式附加至 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 會是紅色,當窗格並排顯示時為綠色,當窗格顯示在最上層時為黃色。