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 属性,以确保使用 正确行为。

注意

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

适用于

另请参阅