【发布时间】:2017-06-28 23:20:19
【问题描述】:
我是第一次使用 VisualStateManager。不幸的是,我没有让它运行。
这是我的 XAML 代码:
<SplitView x:Name="spltvw" IsPaneOpen="False" DisplayMode="CompactInline"
CompactPaneLength="48" Grid.Row="1" PaneBackground="#FFDADADA">
<VisualStateManager.VisualStateGroups>
<VisualStateGroup>
<VisualState x:Name="lowerThan7State">
<VisualState.Setters>
<Setter Target="spltvw.DisplayMode" Value="Overlay" />
</VisualState.Setters>
</VisualState>
<VisualState x:Name="defaultState">
<VisualState.Setters>
<Setter Target="spltvw.DisplayMode" Value="CompactInline" />
</VisualState.Setters>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
....
</SplitView>
这是我的代码隐藏:
private void Page_Loaded(object sender, RoutedEventArgs e)
{
bool test = false;
if(IsScreenSizeLessThan7inches())
test = VisualStateManager.GoToState(this, lowerThan7State.Name, true);
else
test = VisualStateManager.GoToState(this, defaultState.Name, true);
}
我已经尝试更改“useTransitions”参数。我已经调试并测试了“IsScreenSizeLessThan7inches()”方法。但是这种方法的结果是正确的。
GoToState() 方法的返回值始终为 false,SplitView-Control 的状态也没有改变。
我没发现问题...
请帮我找出错误。
谢谢!
【问题讨论】:
-
简单地说,您在 SplitView 中添加视觉状态以改变其状态。在 SplitView 之外添加视觉状态,它应该像魅力一样工作。
-
是的。这就是解决方案!谢谢!
-
请将您所做的作为答案发布并将其标记为答案,以便对其他人也有帮助。