日期:2014-05-17  浏览次数:20905 次

|ZYCWPF| WPF中窗体如何得到他是由哪个窗体Show出的的呢? 谢谢
如,我有A窗体和B窗体
我在A窗体的按钮中用
var b = new B();
//b.OwnerWindow = this; //我要求是不要这一句设置后,在B中怎么取得
b.show();
然后我如何在B的默认构造器中如何得到我是a窗体
public B()
{
  ??这里得到我是由哪窗体Show出来的
}
我用Application.Current.MainWindow的话这样只能得到的是启动的窗体
也就是说,如何得到他是由哪个窗体show出来的

谢谢
------解决方案--------------------
this.Owner
------解决方案--------------------
没有办法。因为如果不加上b.OwnerWindow,那么a和b只是创建时间有先后,但是没有隶属关系。
------解决方案--------------------
好像是做不到的。b.show();也不一定是从一个窗口发出的调用,所以不会知道哪个窗体show的它。

不过可以用下面的方法知道当前的活动窗口:
Application.Current.Windows.Cast<Window>().SingleOrDefault(x => x.IsActive);