VisualState.StateTriggers 属性

定义

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

适用于

另请参阅