Xamarin.Forms Gatilhos de tela dupla
O Xamarin.Forms.DualScreen
namespace inclui dois gatilhos de estado:
SpanModeStateTrigger
aciona umaVisualState
alteração quando o modo de exibição do layout anexado é alterado.WindowSpanModeStateTrigger
Aciona umaVisualState
alteração quando o modo de exibição da janela é alterado.
Para obter mais informações sobre gatilhos de estado, consulte Gatilhos de estado.
Gatilho de estado do modo de amplitude
A SpanModeStateTrigger
aciona uma VisualState
alteração quando o modo de extensão do layout anexado é alterado. Esse gatilho tem uma única propriedade associável:
SpanMode
, do tipoTwoPaneViewMode
, que indica o modo de intervalo ao qual oVisualState
deve ser aplicado.
Observação
SpanModeStateTrigger
deriva da classe StateTriggerBase
e, portanto, pode anexar um manipulador de eventos ao evento IsActiveChanged
.
O exemplo de XAML a seguir mostra um Grid
que inclui os objetos 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>
Neste exemplo, os estados visuais são definidos em um Grid
objeto. A cor da tela de fundo do Grid
é verde quando apenas um painel é mostrado, é vermelha quando os painéis são mostrados lado a lado e é roxa quando os painéis são mostrados de cima para baixo.
Gatilho de estado do modo de extensão de janela
A WindowSpanModeStateTrigger
dispara uma VisualState
alteração quando o modo de extensão da janela é alterado. Esse gatilho tem uma única propriedade associável:
SpanMode
, do tipoTwoPaneViewMode
, que indica o modo de intervalo ao qual oVisualState
deve ser aplicado.
Observação
WindowSpanModeStateTrigger
deriva da classe StateTriggerBase
e, portanto, pode anexar um manipulador de eventos ao evento IsActiveChanged
.
O exemplo de XAML a seguir mostra um Grid
que inclui os objetos 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>
Neste exemplo, os estados visuais são definidos em um Grid
objeto. A cor da tela de fundo do Grid
é vermelha quando apenas um painel é mostrado, é verde quando os painéis são mostrados lado a lado e é amarela quando os painéis são mostrados de cima para baixo.