z-应用程序窗口顺序 - WPF

时间:2009-01-26 13:54:46

标签: .net wpf .net-3.5

有没有办法找出我的应用程序中所有活动窗口的z顺序(application.current.windows) 或任何其他方式来找出模态窗口的“父”窗口是什么?

我正在尝试实现一个“着色器”功能,当显示模式窗口时应该淡化父窗口。 (到目前为止我找到的唯一方法是将“父”窗口作为参数传递,但我不是很喜欢这种方式。)

1 个答案:

答案 0 :(得分:2)

无论如何你应该把它传递给父窗口,否则如果用户在你的应用程序和其他一个应用程序之间切换,你可能会遇到怪异的问题(我上周必须解决这个问题。:))。 Windows有一个所有者属性,您应该在显示模式窗口时设置:

bool? res = new MyWindow(){Owner = this}.ShowDialog();

然后您可以使用子窗口中的Owner属性:

if (Owner != null) {
 Owner.DoWhateverYouWant();
}