Window.Owner 属性

定义

获取或设置拥有此 WindowWindow

public:
 property System::Windows::Window ^ Owner { System::Windows::Window ^ get(); void set(System::Windows::Window ^ value); };
public System.Windows.Window Owner { [System.Security.SecurityCritical] get; [System.Security.SecurityCritical] set; }
public System.Windows.Window Owner { get; set; }
[<get: System.Security.SecurityCritical>]
[<set: System.Security.SecurityCritical>]
member this.Owner : System.Windows.Window with get, set
member this.Owner : System.Windows.Window with get, set
Public Property Owner As Window

属性值

表示此 Window所有者的 Window 对象。

属性

例外

窗口尝试自己拥有

-或-

两个窗口尝试彼此拥有。

Owner 属性在使用 ShowDialog() 显示的可见窗口上设置

-或-

Owner 属性是使用以前未显示的窗口设置的。

示例

以下示例演示如何建立所有者/拥有的关系。

// Create a window and make this window its owner
Window ownedWindow = new Window();
ownedWindow.Owner = this;
ownedWindow.Show();
' Create a window and make this window its owner
Dim ownedWindow As New Window()
ownedWindow.Owner = Me
ownedWindow.Show()

注解

当父窗口通过调用 ShowDialog打开子窗口时,会在父窗口和子窗口之间建立隐式关系。 此关系强制实施某些行为,包括最小化、最大化和还原。

但是,当父窗口通过调用 Show创建子窗口时,子窗口与父窗口没有关系。 这意味着:

  • 子窗口没有对父窗口的引用。

  • 子窗口的行为不依赖于父窗口的行为:任一窗口都可以覆盖另一个窗口,也可以独立于另一个窗口进行最小化、最大化和还原。

若要允许在子窗口和父窗口之间创建关系,Window 支持所有权的概念。 当窗口(拥有的窗口)的 Owner 属性设置为对另一个窗口(所有者窗口)的引用时,将建立所有权。

建立此关系后,将展示以下行为:

  • 如果所有者窗口最小化,则所有拥有的窗口也会最小化。

  • 如果已拥有的窗口最小化,则其所有者不会最小化。

  • 如果所有者窗口最大化,则还原所有者窗口和其拥有的窗口。

  • 所有者窗口永远不能覆盖拥有的窗口。

  • 未使用 ShowDialog 打开的自有窗口不是模式窗口。 用户仍然可以与所有者窗互。

  • 如果关闭所有者窗口,则其拥有的窗口也会关闭。

  • 如果使用 Show由其所有者窗口打开拥有的窗口,并且所有者窗口已关闭,则不会引发拥有的窗口的 Closing 事件。

通过调用 ShowDialog打开子窗口时,还应设置子窗口的 Owner 属性。 如果没有,则用户将无法通过按任务栏按钮还原子窗口和父窗口。 相反,按任务栏按钮将生成一个窗口列表,包括子窗口和父窗口,供他们选择;仅还原所选窗口。

重要

还应通过调用 ShowDialog 在打开的窗口中设置 Owner 属性,以确保使用拥有的窗口正确行为。

注意

在浏览器中托管窗口时,无法设置或获取此属性。

适用于

另请参阅