2

如果我对 WPF 有问题,那么它总是与焦点管理有关。在某些情况下,我的应用程序完全失去了焦点,以至于另一个应用程序获得了焦点,而我的应用程序进入了后台。这主要发生在我的应用程序中的某些窗口将关闭时。这是 WPF 的一个已知问题吗?其他人有类似的问题吗?

我已经为此打开了另一个线程,但是没有人可以提供帮助,也许它有点过于详细。因此,这是简短的版本。

更新

似乎我找到了一个简单的技巧,可以帮助防止我在另一个线程中描述的行为。如果您有同样的问题,请尝试它是否对您有帮助。如果你有一个解释,有一个赏金开放......

我把这篇文章留了几天,可能有人对 WPF 焦点问题有很好的一般输入。可能我不明白它背后的逻辑,但在我明白之前,这确实是 IMO 最糟糕的 WPF 部分(IMO 是一个非常棒的产品)。如果我必须告诉某人我过去几年在 WPF 中遇到的问题,那就是:Focusmgmt、Focusmgmt 和一次 Focusmgmt。

4

2 回答 2

2

为了失去整个应用程序的焦点,请确保在显示之前在所有窗口上设置 Owner 属性。

为了在应用程序中失去焦点,通常会发生这种情况,当您没有想到的某些控件正在获取但没有显示任何内容(例如一些随机的 StackPanel 或用于布局的网格)时,您必须寻找并添加Focusable="false"

于 2010-07-13T07:39:12.990 回答
1

+1 因为我在我的应用程序中也遇到了类似的问题。我正在开发一个类似 VS 的应用程序(用户可以添加(从工具箱)并在画布中配置控件),并且在执行各种命令(如删除等)后,焦点神秘地丢失了。我必须Canvas.Focus()明确使用来重置焦点,这也没有有时不工作。

于 2010-07-13T06:53:38.997 回答