如果我在使用 WPF 时遇到问题,那么它总是与焦点管理有关。 在某些情况下,我的应用程序完全失去焦点,因此另一个应用程序获得焦点,而我的应用程序进入后台。这种情况主要发生在我的应用程序中的某些窗口被关闭的情况下。 这是 WPF 的已知问题吗?其他人也有类似的问题吗?
我已经打开another thread对此,但没有人能帮忙,也许有点太详细了。因此,这是简短的版本。
更新
我似乎发现了一个简单的技巧,可以帮助防止我在 other thread 中描述的行为。 。如果您遇到同样的问题,请尝试一下是否对您有帮助。如果您有解释,则有悬赏...
我将这篇文章保留了几天,可能有人对 WPF 焦点问题有很好的一般性意见。可能我不明白它背后的逻辑,但在我理解之前,这在我看来确实是 WPF 中最糟糕的部分(在我看来,这是一个非常棒的产品)。如果我必须告诉别人我过去几年在 WPF 中遇到的问题,那就是:Focusmgmt、Focusmgmt,以及更多 Focusmgmt。
最佳答案
要失去整个应用程序的焦点,请确保在显示所有窗口之前设置“Owner”属性。
对于在应用程序内失去焦点,通常当您没有想到的某些控件正在获取但没有显示任何内容(例如用于布局的一些随机 StackPanel 或 Grid)时,通常会发生这种情况,您必须寻找这些控件并添加 Focusable="false"
关于.net - WPF应用程序焦点不稳定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3234581/