我试图弄清楚这些 LayoutAwarePage 是如何实际改变页面状态的。
当方向改变时,会调用以下处理程序:
this.InvalidateVisualState()
我试图了解调用如何映射到 XAML 中的正确视图状态?IE
<!– Visual states reflect the application’s view state –>
<VisualStateGroup x:Name="ApplicationViewStates">
<VisualState x:Name="FullScreenLandscape">
.
.
.
</VisualState>
<VisualState x:Name="Filled">
.
.
.
</VisualState>
<!– The entire page respects the narrower 100-pixel margin convention for portrait –>
<VisualState x:Name="FullScreenPortrait">
.
.
.
</VisualState>
<!– The back button and title have different styles when snapped –>
<VisualState x:Name="Snapped">
.
.
.
</VisualState>
</VisualStateGroup>
无论它在做什么显然都能够解析在 VisualStateManager 中声明的正确视觉状态。
另外,为什么它使视觉状态无效,而不是仅仅调用 VisualStateManager.GoToState(this,"Filled",false)
例如?InvalidateVisualState 还有什么作用?