0

VisualStateManager我对Windows Store 应用程序的工作有一个疑问......

假设这个示例页面:

<common:LayoutAwarePage x:Name="pageRoot">
    <Grid Style="{StaticResource LayoutRootStyle}">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="400" />
            <ColumnDefinition Width="*" />
        </Grid.ColumnDefinitions>
        <ListView Grid.Column="0"
                  x:Name="testElement" />
        <Grid Grid.Column="1" />
    </Grid>
<common:LayoutAwarePage/>

我用一个示例声明了下一个VisualStateManager行为VisualState

<VisualStateManager.VisualStateGroups>
    <VisualStateGroup x:Name="ApplicationViewStates">
        <VisualState x:Name="Snapped">
            <Storyboard>
                <ObjectAnimationUsingKeyFrames Storyboard.TargetName="testElement"
                                               Storyboard.TargetProperty="Visibility">
                    <DiscreteObjectKeyFrame KeyTime="0"
                                            Value="Collapsed" />
                </ObjectAnimationUsingKeyFrames>
            </Storyboard>
        </VisualState>
    </VisualStateGroup>
</VisualStateManager.VisualStateGroups>

现在我的问题:

  1. 应用程序如何确定“状态”(我的意思是属性的值)是我在页面的 XAML 声明中使用的状态?
  2. 我是否需要明确设置页面的“初始”值 - 例如 - a FullScreenLandscapeOrWide VisualState
  3. 页面是否可能以不同的 VisualState“状态”(不是 FullScreenLandscapeOrWide)开始(可能使用其他屏幕分辨率或特定设备),如果我不声明FullScreenLandscapeOrWide VisualState(初始状态)会给我带来问题?

提前感谢您的澄清...

4

1 回答 1

0

所有的事情都发生在LayoutAwarePage. 签出Visual state switching区域,StartLayoutUpdates页面加载时调用事件。它决定了应用程序当前的视觉状态是什么,您不需要在每个页面中显式添加。当应用程序在特定状态下打开时,它可以在特定视觉状态下切换控件。

于 2013-09-30T09:44:24.783 回答