ランドスケープ ビューからフィル ビューに切り替えて、あるページから別のページに初めて移動すると、アプリケーションが真っ暗になります。その後は正常に動作しますが、最初は黒くなります。FillからLandscape Viewに切り替えて、あるページから別のページに初めて移動すると、それも黒くなります。その後は正常に動作しますが、最初は黒くなります。私のコードは C# と XAML で書かれています。ランドスケープからフィルに、またはその逆に切り替えても、何も変更していません。ビューが Snap から Fill/Landscape に、またはその逆に変更された場合にのみ変更します。
質問する
277 次
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 に答える