1

当我从横向切换到填充视图并第一次从一个页面导航到另一个页面时,我的应用程序变黑了。后来它工作正常,但第一次它变黑了。当我第一次从填充切换到横向视图并从一个页面导航到另一个页面时,它甚至会变黑。后来它工作正常,但第一次它变黑了。我的代码是用 C# 和 XAML 编写的。当我从横向切换到填充时,我没有改变任何东西,反之亦然。仅当视图从捕捉更改为填充/横向或反之亦然时,我才更改它。

4

1 回答 1

1

与其调整现有内容的大小,不如让一组单独的内容更容易隐藏起来,直到用户移动到快照模式。

使用 VisualStateGroups 为给定的全屏/快照视图隐藏/显示适当的内容集。

因此,不要调整现有字段的大小:

<Page>
    <Grid>
        <Grid x:Name="FullScreenLayout">...
        </Grid>
        <Grid x:Name="SnappedScreenLayout">...
        </Grid>
        <VisualStateManager.VisualStateGroups>

            <!-- Visual states reflect the application's view state -->
            <VisualStateGroup x:Name="ApplicationViewStates">  
                <VisualState x:Name="Snapped">
                    <Storyboard>
                        <ObjectAnimationUsingKeyFrames Storyboard.TargetName="FullScreenLayout" Storyboard.TargetProperty="Visibility">
                            <DiscreteObjectKeyFrame KeyTime="0" Value="Collapsed"/>
                        </ObjectAnimationUsingKeyFrames>
                        <ObjectAnimationUsingKeyFrames Storyboard.TargetName="SnappedScreenLayout" Storyboard.TargetProperty="Visibility">
                            <DiscreteObjectKeyFrame KeyTime="0" Value="Visible"/>
                        </ObjectAnimationUsingKeyFrames>     
                    </Storyboard>
                </VisualState>
            </VisualStateGroup>
        </VisualStateManager.VisualStateGroups>
    </Grid>
</Page>

当我们处于捕捉模式并显示我们的捕捉模式布局时,这里只是隐藏全屏布局。还有更多的 Xaml,但它包含在内,并允许您提供特定于视图的布局,这使 Xaml 更简洁、更易于阅读。

于 2012-10-04T20:57:10.037 回答