显示拥有的窗口而不会带到前面

时间:2016-02-15 18:02:28

标签: c# wpf

主窗口显示没有所有者的窗口。然后主窗口显示它拥有的窗口。拥有的窗户将自己和主窗口带到前面。

我希望拥有的窗口和主窗口在没有所有者的情况下留在窗口后面。在拥有的窗口上将属性ShowActivated设置为false不会阻止窗口将自己置于前面,但会阻止窃取焦点。

在调用Show时如何让拥有的窗口留在无主窗口后的任何想法?

Window ownerlessWindow = new OwnerlessWindow();
ownerlessWindow.Show();

Thread.Sleep(1000);

Window child = new ChildWindow();
child.ShowActivated = false;
child.Owner = this;
child.Show();

// Bring the ownerless window to the front
ownerlessWindow.Topmost = true;
ownerlessWindow.Topmost = false;
ownerlessWindow.Focus();

在测试应用程序中,上面的代码确实将无主窗口放回到前面而窗口顺序没有明显变化。在生产应用程序中,窗口顺序发生了快速,可见的变化。

1 个答案:

答案 0 :(得分:0)

Window ownerlessWindow = new OwnerlessWindow();

// set the ownerless window topmost first
ownerlessWindow.Topmost = true;
ownerlessWindow.Show();

Thread.Sleep(1000);

Window child = new ChildWindow();
child.ShowActivated = false;
child.Owner = this;
child.Show();