如何修改模板10中默认视觉状态的条件?
我希望能够区分手机上的横向模式与PC或平板电脑上的窗口。
通过将手机置于横向模式来触发NormalMinWidth。问题是横向模式下的手机屏幕高度可能远低于平板电脑或个人电脑。
我希望手机上的NormalMinWidth与PC或平板电脑的布局不同。例如,我想添加另一个查看最小屏幕高度的视觉状态NormalMinWidthMinHeight。
我们非常感谢任何建议。
答案 0 :(得分:1)
您需要实现允许动态更改状态的代码。
例如,如果您要根据当前视图的方向更改状态。您需要为OrientationChanged事件实现事件处理程序并使用VisualStateManager类的GoToState方法。
请参考以下代码示例以供参考:
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="AdaptiveVisualStateGroup">
<VisualState x:Name="VisualMinWidthHeight">
<VisualState.Setters>
<Setter Target="stateTextBox.Text" Value="Visual Min Width Height" />
</VisualState.Setters>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<TextBlock x:Name="stateTextBox" Text="Current Visual State" />
DisplayInformation.GetForCurrentView().OrientationChanged += MainPage_OrientationChanged;
private void MainPage_OrientationChanged(DisplayInformation info, object args)
{
Debug.WriteLine("orientation: " + info.CurrentOrientation);
if (info.CurrentOrientation == DisplayOrientations.LandscapeFlipped || info.CurrentOrientation == DisplayOrientations.Landscape)
{
VisualStateManager.GoToState(this, "VisualMinWidthHeight", true);
}
}