切换到其他应用时不会触发 UWP Flyout 的关闭事件
Posted
技术标签:
【中文标题】切换到其他应用时不会触发 UWP Flyout 的关闭事件【英文标题】:Closing event of UWP Flyout is not fired when switching to the other app 【发布时间】:2021-10-11 02:36:30 【问题描述】:我使用 C# 和 XAML 开发 UWP 应用。
Flyout 有以下事件:Closing 和 Closed
案例#1。当我通过单击事件顺序之外的某处关闭 Flyout 时,关闭 -> 已关闭。在 Closing 事件的处理程序中,我可以通过设置 e.Cancel = true 来取消 Flyout 的隐藏。
案例#2。当我打开 Flyout 然后最小化应用程序/更改应用程序大小/与其他应用程序重叠应用程序时 - 不会触发关闭事件。在这种情况下,如何取消隐藏 Flyout?
我还有 ContentDialog,当我点击 Flyout 内的按钮时会打开它。所以在某个时刻,屏幕上会出现 Flyout 和 ContentDialog。当我切换到其他应用程序然后返回时 - ContentDialog 仍然可见,但 Flyout 不可见。我需要同时保留 Flyout 和 ContentDialog。我该怎么做?
谢谢
【问题讨论】:
【参考方案1】:我需要同时保留 Flyout 和 ContentDialog。我该怎么做?
我不得不说这是不可能的。 Flyout 是一种显示轻量级 UI 的控件,该 UI 既可以是信息,也可以是需要用户交互的。与对话框不同,Flyout 可以轻而易举地解除。也许您可以考虑使用在这些情况下不会关闭的 Popup,而不是使用 Flyout。
【讨论】:
以上是关于切换到其他应用时不会触发 UWP Flyout 的关闭事件的主要内容,如果未能解决你的问题,请参考以下文章
UWP - Flyout中的WinRT xaml工具包TreeView,在弹出窗口关闭后更改选择
UWP CommandBar SecondaryCommand 与 AppBarButton Flyout 冲突
如何在 UWP 中结合 Flyout 和 MenuFlyout?