VisualState.StateTriggers 屬性
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
取得 StateTriggerBase 物件的集合,指出何時應套用這個 VisualState 。 如果任何 (並非所有觸發程式) 都處於作用中狀態, VisualState
將會套用 。
public:
property IVector<StateTriggerBase ^> ^ StateTriggers { IVector<StateTriggerBase ^> ^ get(); };
IVector<StateTriggerBase> StateTriggers();
public IList<StateTriggerBase> StateTriggers { get; }
var iVector = visualState.stateTriggers;
Public ReadOnly Property StateTriggers As IList(Of StateTriggerBase)
屬性值
StateTriggerBase物件的集合。 預設為空集合。
範例
此範例示範如何使用 StateTriggers 屬性搭配 AdaptiveTrigger ,根據視窗大小在 XAML 標記中建立宣告式規則。 根據預設, StackPanel 方向為 Vertical
。 當視窗寬度 = > 720 個有效圖元時,會觸發 VisualState 變更,並將 StackPanel
方向變更為 Horizontal
。
<Page>
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<VisualStateManager.VisualStateGroups>
<VisualStateGroup>
<VisualState>
<VisualState.StateTriggers>
<!--VisualState to be triggered when window width is >=720 effective pixels.-->
<AdaptiveTrigger MinWindowWidth="720" />
</VisualState.StateTriggers>
<VisualState.Setters>
<Setter Target="myPanel.Orientation" Value="Horizontal" />
</VisualState.Setters>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<StackPanel x:Name="myPanel" Orientation="Vertical">
<TextBlock Text="This is a block of text. It is text block 1. "
Style="{ThemeResource BodyTextBlockStyle}"/>
<TextBlock Text="This is a block of text. It is text block 2. "
Style="{ThemeResource BodyTextBlockStyle}"/>
<TextBlock Text="This is a block of text. It is text block 3. "
Style="{ThemeResource BodyTextBlockStyle}"/>
</StackPanel>
</Grid>
</Page>
備註
使用這個屬性在 XAML 中建立規則,以指定要套用特定 VisualState 的時間。 您直接在 XAML 標記中使用 StateTriggers
,而不是在程式碼中呼叫 VisualStateManager.GoToState 。
您可以使用內建 AdaptiveTrigger 來根據視窗大小建立規則,這適用于建立回應式 UI。 您也可以擴充 StateTriggerBase 來建立自己的自訂觸發程式,並在 StateTriggers 屬性內使用這些觸發程式。
如需更多範例,請參閱 XAML 回應技術範例 和 狀態觸發程式範例。