命名空間 Xamarin.Forms.DualScreen 包含兩個狀態觸發程式:
SpanModeStateTrigger當VisualState附加版面配置的檢視模式變更時,會觸發變更。WindowSpanModeStateTriggerVisualState當視窗的檢視模式變更時,會觸發變更。
如需狀態觸發程式的詳細資訊,請參閱 狀態觸發程式。
跨模式狀態觸發程式
當附加版面配置範圍模式變更時,會 SpanModeStateTrigger 觸發 VisualState 變更。 此觸發程序具有單一可繫結屬性:
SpanMode型TwoPaneViewMode別為 的 ,表示應該套用 到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 變更。 此觸發程序具有單一可繫結屬性:
SpanMode型TwoPaneViewMode別為 的 ,表示應該套用 到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 會是紅色,當窗格並排顯示時為綠色,當窗格顯示在最上層時為黃色。