【发布时间】:2017-01-22 01:34:46
【问题描述】:
我有一个SplitView:
<SplitView Name="splitView"
DisplayMode="{Binding SplitViewDisplayMode}"
IsPaneOpen="{Binding SplitViewIsPaneOpen}"
OpenPaneLength="200" CompactPaneLength="51"/>
我也在使用VisualStateManager根据应用程序窗口大小调整SplitView:(示例)
<VisualState.StateTriggers>
<AdaptiveTrigger MinWindowWidth="500"></AdaptiveTrigger>
</VisualState.StateTriggers>
到目前为止,一切正常,但是当上面的触发器和下面的状态被激活时,我遇到了意外的结果。
<VisualState.Setters>
<Setter Value="True" Target="splitView.IsPaneOpen"></Setter>
<Setter Value="Overlay" Target="splitView.DisplayMode"></Setter>
</VisualState.Setters>
我似乎无法找到检测事件的方法,以便我的ViewModel 知道SplitView 窗格焦点何时丢失。现在按设计的覆盖显示,直到用户单击视图(按设计),但我想知道,SplitView 覆盖何时折叠,以便我可以将其他绑定事件添加到我的HamburgerMenu。
根据我的经验,VisualStateManager 似乎没有更新/更改我的绑定
DisplayMode="{Binding SplitViewDisplayMode}"
关于我如何发现叠加层是否/何时消失/关闭的任何想法?
我唯一能想到的是创建发现窗口大小的方法,然后确定 SplitView 是否应该是Inline/Compact/Overlay.. 这是可行的,但会导致很多潜在组合。
当用户单击SplitView 之外的控件时,关于如何检测或让SplitView 告诉我Overlay 是否为Collapsed 的任何想法或想法?
【问题讨论】:
标签: xaml data-binding uwp uwp-xaml splitview