У меня 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
фокус теряется. Прямо сейчас, как было задумано, Overlay отображается до тех пор, пока пользователь не щелкнет представление (как задумано), но я хотел бы знать, когда SplitView
Overlay свернут, чтобы я мог добавить дополнительные события привязки в свой HamburgerMenu
.
Из того, что я переживаю, похоже, что VisualStateManager
не обновляет / не меняет мои привязки
DisplayMode="{Binding SplitViewDisplayMode}"
Любые идеи относительно того, как я могу определить, исчезает ли / закрывается оверлей?
Единственное, что я могу придумать, - это создать методы, которые обнаруживают размер окна, а затем определяют, должен ли SplitView быть _13 _ / _ 14 _ / _ 15_ .. Это выполнимо, но приведет к множеству потенциальных комбинаций.
Есть ли какие-либо мысли или идеи о том, как обнаружить или заставить SplitView
сказать мне, является ли Overlay
Collapsed
, когда пользователь щелкает элемент управления за пределами SplitView
?