Xamarin.Forms 雙螢幕觸發程式
命名空間 Xamarin.Forms.DualScreen
包含兩個狀態觸發程式:
SpanModeStateTrigger
當VisualState
附加版面配置的檢視模式變更時,會觸發變更。WindowSpanModeStateTrigger
VisualState
當視窗的檢視模式變更時,會觸發變更。
如需狀態觸發程式的詳細資訊,請參閱 狀態觸發程式。
跨模式狀態觸發程式
當附加版面配置範圍模式變更時,會 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
會是紅色,當窗格並排顯示時為綠色,當窗格顯示在最上層時為黃色。