如何判断窗口是不是被释放
Posted
技术标签:
【中文标题】如何判断窗口是不是被释放【英文标题】:How to determine if window is disposed如何判断窗口是否被释放 【发布时间】:2011-04-27 10:55:25 【问题描述】:当应用程序关闭时,我在 WPF MainWindow1.Xaml 中有一个函数。但在未知情况下,用户可以使用“文件 > 关闭”按钮以另一种方式关闭应用程序。我只需要在“关闭”方法中知道当前 MainWindow1.xaml 是否已经被释放。但我找不到任何财产。
你能帮帮我吗?
【问题讨论】:
【参考方案1】:你可以试试
var source = PresentationSource.FromVisual(yourWindow)
如果source
为空或source.IsDisposed == true
,则表明您的窗口已关闭。
【讨论】:
source.IsDisposed
将始终为false
,否则PresentationSource.FromVisual
将不会返回源代码。【参考方案2】:
您可以附加到Window
上的Closed
事件。 当这个事件被调用时,窗口关闭。实际上我必须更正:根据the MSDN documentation,这仅意味着您无法阻止在调用此事件时关闭窗口。
如果收听Closed
事件不够好,那么这是另一种选择:How do you tell if a WPF Window is closed?
【讨论】:
感谢您的回复 ChrisWue。我会这样尝试:` schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="schemas.microsoft.com/winfx/2006/xaml" x:Class="SDKSample.App" ShutdownMode="OnExplicitShutdown" /> ` 与 MainWindow1.IsLoaded 属性.. . 不起作用。查看这里的情况:link 我认为您正在尝试在窗口已经关闭时调用Close
。我不确定你的目标是什么,也许你可以解释更多。以上是关于如何判断窗口是不是被释放的主要内容,如果未能解决你的问题,请参考以下文章
DELPHI 用TThread如何判断线程是不是存在 并且释放线程
如何使用 JavaScript 判断 DOM 对象是不是在窗口外? [复制]