UWP / WinRT:检测弹出窗口何时关闭

UWP / WinRT: Detect when a popup is about to be closed

如何检测弹出窗口即将关闭的时间?

Popup class 在 UWP 中没有 Closing 事件,这与 WPF 中存在此类事件不同。

我需要这个来保持 Popup 的状态,因为用户可以修改布局。

如您所知,没有关闭事件。您可能会幸运地注册到 IsOpen 属性 更改(如果 IsLightDismissEnabled 属性 设置为 true...)

this.popup.RegisterPropertyChangedCallback(Popup.IsOpenProperty, (d, e) =>
{
    if (!this.popup.IsOpen)
    {
        // do something, popup is closing?
    }
});

因为这发生在 LostFocus 和 Closed 事件被触发之前。除此之外,如果不是很复杂,您可以重新设计持久化数据的方式以一直持久化它们,以避免不得不依赖于关闭事件。