Share via


Xamarin.Forms trigger a doppio schermo

Lo Xamarin.Forms.DualScreen spazio dei nomi include due trigger di stato:

  • SpanModeStateTrigger attiva una VisualState modifica quando cambia la modalità di visualizzazione del layout associato.
  • WindowSpanModeStateTrigger attiva una VisualState modifica quando cambia la modalità di visualizzazione della finestra.

Per altre informazioni sui trigger di stato, vedere Trigger di stato.

Trigger di stato della modalità span

Un SpanModeStateTrigger attiva una VisualState modifica quando cambia la modalità span del layout associato. Questo trigger ha un'unica proprietà associabile:

Nota

SpanModeStateTrigger deriva dalla classe StateTriggerBase e può quindi allegare un gestore all'evento IsActiveChanged.

L'esempio di codice XAML seguente illustra un elemento Grid che include oggetti SpanModeStateTrigger:

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

In questo esempio gli stati di visualizzazione vengono impostati su un Grid oggetto . Il colore di sfondo di Grid è verde quando viene visualizzato un solo riquadro, è rosso quando i riquadri vengono visualizzati affiancati ed è viola quando i riquadri vengono visualizzati in alto in basso.

Trigger di stato della modalità intervallo di finestra

Un WindowSpanModeStateTrigger attiva una VisualState modifica quando cambia la modalità di intervallo della finestra. Questo trigger ha un'unica proprietà associabile:

Nota

WindowSpanModeStateTrigger deriva dalla classe StateTriggerBase e può quindi allegare un gestore all'evento IsActiveChanged.

L'esempio di codice XAML seguente illustra un elemento Grid che include oggetti WindowSpanModeStateTrigger:

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

In questo esempio gli stati di visualizzazione vengono impostati su un Grid oggetto . Il colore di sfondo di Grid è rosso quando viene visualizzato un solo riquadro, è verde quando i riquadri vengono visualizzati affiancati ed è giallo quando i riquadri vengono visualizzati in alto in basso.