2013-03-25 105 views
0

我们正在遇到关于多个窗口之间焦点的奇怪行为。WPF - 显示多个窗口时出现错误焦点

我们的情景是这样的:

“窗口A”打开子“窗口B”使用Show方法(不precifying窗口的所有者)。两个Windows都完全独立。

在“窗口B”中单击按钮打开“窗口C”(显示模式窗口)。

A - >乙 - “ç

当 ”窗口C“ 被关闭时,焦点就回到 ”窗口A“。

在我看来,“窗口B”应该重新获得焦点,因为它是窗口的“逻辑”所有者(因为我没有指定所有者)。

它看起来像回到第一个instanciated窗口的焦点。

有没有办法在我的情况下“强制”焦点,在“窗口B”。

回答

0

你应该能够您的ShowDialog()返回后有权这样做

B.Activate(); 

+0

谢谢。经过进一步调查,它看起来像我们的框架中的一个错误。 Activate方法被正确调用,但由于某种原因,使用Dispatcher.BeginInvoke关闭了“Window C”。 Activate方法返回“false”,因为此时“窗口C”未关闭。如果我将“BeginInvoke”更改为“Invoke”,它可以正常工作。我们的开发团队将调查问题。 – 2013-03-26 20:03:20