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 响应技术示例 和 状态触发器示例。