有没有办法找出我的应用程序中所有活动窗口的z顺序(application.current.windows) 或任何其他方式来找出模态窗口的“父”窗口是什么?
我正在尝试实现一个“着色器”功能,当显示模式窗口时应该淡化父窗口。 (到目前为止我找到的唯一方法是将“父”窗口作为参数传递,但我不是很喜欢这种方式。)
答案 0 :(得分:2)
无论如何你应该把它传递给父窗口,否则如果用户在你的应用程序和其他一个应用程序之间切换,你可能会遇到怪异的问题(我上周必须解决这个问题。:))。 Windows有一个所有者属性,您应该在显示模式窗口时设置:
bool? res = new MyWindow(){Owner = this}.ShowDialog();
然后您可以使用子窗口中的Owner属性:
if (Owner != null) {
Owner.DoWhateverYouWant();
}