代码之家  ›  专栏  ›  技术社区  ›  Nikos Tsokos

z应用程序窗口顺序-WPF

  •  0
  • Nikos Tsokos  · 技术社区  · 17 年前

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

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

    1 回复  |  直到 17 年前
        1
  •  2
  •   Ria    17 年前

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

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

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

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