我有一个.Net 4应用程序,在WPF 4中有两个窗口:
" no-activate"一旦我没有选择基本窗口(它没有获得焦点),窗口行为是合适的。但是当选择基本窗口时," no-activate"窗口可以聚焦...并在用户点击它时获得它。
就好像WPF认为同一应用程序的两个窗口有权提供焦点,即使它们不应该。 如果两个窗口都是WS_EX_NOACTIVATE,则不会发生此行为。
你曾经遇到过这个问题吗? 我读过这个:WPF in Visual Studio 2010 – Part 3 : Focus and Activation,但没有解决它。
编辑:我已经能够通过使用Popup作为我的非活动窗口的基类来解决。但是,我不想要一个Popup。为什么!弹出窗口从未得到关注:有人知道为什么/如何?如何将此行为重现到Window? 我尝试进入Popup / Window代码,但不是很清楚!
谢谢!
答案 0 :(得分:0)
尝试同时为其提供WS_EX_TOOLWINDOW。 http://www.daniweb.com/software-development/csharp/threads/273724/a-form-that-doesnt-steal-focus#
答案 1 :(得分:0)
行。我部分解决了这个问题。
如果直接选择窗口,窗口已经获得焦点,但是当选择窗口的某个组件时,窗口不会聚焦。
只需添加:
Focusable = false;
到窗口中包含的任何WPF控件,即使前一个焦点是同一个应用程序的窗口,它们也永远不会被聚焦。