当我从横向切换到填充视图并首次从一个页面导航到另一个页面时,我的应用程序变黑。后来它工作正常,但第一次变黑。 当我从Fill切换到Landscape View并且第一次从一个页面导航到另一个页面时,它甚至会变黑。后来它工作正常,但第一次变黑。 我的代码是用C#和XAML编写的。 当我从Landscape切换到Fill时,我没有改变任何东西,反之亦然。 我只有在视图从Snap变为Fill / Landscape时才更改它,反之亦然..
答案 0 :(得分: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更清晰,更易于阅读。