切换到其他应用时不会触发 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浮动控件

如何在 UWP 中结合 Flyout 和 MenuFlyout?

UWP 颜色选择器(ColorPicker) 和 自定义的Flyout(AdvancedFlyout)

UWP 颜色选择器(ColorPicker) 和 自定义的Flyout(AdvancedFlyout)