UWP SplitView DisplayMode Overlay - 不在焦点
UWP SplitView DisplayMode Overlay - not in focus
我有一个 SplitView
:
<SplitView Name="splitView"
DisplayMode="{Binding SplitViewDisplayMode}"
IsPaneOpen="{Binding SplitViewIsPaneOpen}"
OpenPaneLength="200" CompactPaneLength="51"/>
我也在使用 VisualStateManager
根据应用 window 大小调整 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
似乎没有 update/change 我的绑定
DisplayMode="{Binding SplitViewDisplayMode}"
关于如何发现 if/when 叠加层 disappears/Closes 有什么想法吗?
我唯一能想到的就是创建发现Window大小的方法,然后确定SplitView是否应该是Inline
/Compact
/Overlay
.. 这是可行的,但会产生很多潜在的组合。
关于如何检测或获取 SplitView
以在用户单击 SplitView
之外的控件时告诉我 Overlay
是否为 Collapsed
的任何想法或想法?
要使绑定有效,您必须将它们指定为双向 绑定。如果没有这个,他们只会用您的代码更改来更新 UI,而不是相反:
<SplitView Name="splitView"
DisplayMode="{Binding SplitViewDisplayMode, Mode=TwoWay}"
IsPaneOpen="{Binding SplitViewIsPaneOpen, Mode=TwoWay}"
OpenPaneLength="200" CompactPaneLength="51"/>
现在,只要状态发生变化,您的属性就会正确更新。
我有一个 SplitView
:
<SplitView Name="splitView"
DisplayMode="{Binding SplitViewDisplayMode}"
IsPaneOpen="{Binding SplitViewIsPaneOpen}"
OpenPaneLength="200" CompactPaneLength="51"/>
我也在使用 VisualStateManager
根据应用 window 大小调整 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
似乎没有 update/change 我的绑定
DisplayMode="{Binding SplitViewDisplayMode}"
关于如何发现 if/when 叠加层 disappears/Closes 有什么想法吗?
我唯一能想到的就是创建发现Window大小的方法,然后确定SplitView是否应该是Inline
/Compact
/Overlay
.. 这是可行的,但会产生很多潜在的组合。
关于如何检测或获取 SplitView
以在用户单击 SplitView
之外的控件时告诉我 Overlay
是否为 Collapsed
的任何想法或想法?
要使绑定有效,您必须将它们指定为双向 绑定。如果没有这个,他们只会用您的代码更改来更新 UI,而不是相反:
<SplitView Name="splitView"
DisplayMode="{Binding SplitViewDisplayMode, Mode=TwoWay}"
IsPaneOpen="{Binding SplitViewIsPaneOpen, Mode=TwoWay}"
OpenPaneLength="200" CompactPaneLength="51"/>
现在,只要状态发生变化,您的属性就会正确更新。