我在一个WPF的MainWindow1.Xaml文件中有一个函数,用于应用程序关闭。但是在某些情况下,用户可能会以其他方式关闭应用程序,而不是使用“文件 > 关闭”按钮。我只需要知道在“Closing”方法中,当前的MainWindow1.xaml是否已经被处理掉了。但是我找不到任何属性。
你能帮我吗?
我在一个WPF的MainWindow1.Xaml文件中有一个函数,用于应用程序关闭。但是在某些情况下,用户可能会以其他方式关闭应用程序,而不是使用“文件 > 关闭”按钮。我只需要知道在“Closing”方法中,当前的MainWindow1.xaml是否已经被处理掉了。但是我找不到任何属性。
你能帮我吗?
你可以尝试一下
var source = PresentationSource.FromVisual(yourWindow)
如果source
为null或source.IsDisposed == true
,那就表示你的窗口已关闭。您可以附加到Window
上的Closed
事件。 当调用此事件时,窗口将关闭。实际上我必须更正:根据MSDN文档,这仅意味着在调用此事件时无法阻止窗口关闭。
如果监听Closed
事件不够好,则还有另一种选择:如何判断WPF窗口是否已关闭?
<Application xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" x:Class="SDKSample.App" ShutdownMode="OnExplicitShutdown" />
,并使用MainWindow1.IsLoaded属性... - goldengel
source.IsDisposed
始终为false
,否则PresentationSource.FromVisual
将不会返回该源。 - tm1