From 81846e87ece5f0a6c5e7a9146a46a941fdf79a29 Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Thu, 24 Jan 2019 19:11:39 +0100 Subject: [PATCH] Added TopLevel.Opened event. And raise the event when a window is opened. --- src/Avalonia.Controls/TopLevel.cs | 11 +++++++++++ src/Avalonia.Controls/Window.cs | 2 ++ src/Avalonia.Controls/WindowBase.cs | 3 ++- 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/Avalonia.Controls/TopLevel.cs b/src/Avalonia.Controls/TopLevel.cs index 5ca3647da7..32c40847c5 100644 --- a/src/Avalonia.Controls/TopLevel.cs +++ b/src/Avalonia.Controls/TopLevel.cs @@ -136,6 +136,11 @@ namespace Avalonia.Controls } } + /// + /// Fired when the window is opened. + /// + public event EventHandler Opened; + /// /// Fired when the window is closed. /// @@ -311,6 +316,12 @@ namespace Avalonia.Controls $"Control '{GetType().Name}' is a top level control and cannot be added as a child."); } + /// + /// Raises the event. + /// + /// The event args. + protected virtual void OnOpened(EventArgs e) => Opened?.Invoke(this, e); + /// /// Tries to get a service from an , logging a /// warning if not found. diff --git a/src/Avalonia.Controls/Window.cs b/src/Avalonia.Controls/Window.cs index 53f727900b..f5af6774b5 100644 --- a/src/Avalonia.Controls/Window.cs +++ b/src/Avalonia.Controls/Window.cs @@ -389,6 +389,7 @@ namespace Avalonia.Controls Renderer?.Start(); } SetWindowStartupLocation(Owner?.PlatformImpl); + OnOpened(EventArgs.Empty); } /// @@ -458,6 +459,7 @@ namespace Avalonia.Controls owner.Activate(); result.SetResult((TResult)(_dialogResult ?? default(TResult))); }); + OnOpened(EventArgs.Empty); } SetWindowStartupLocation(owner); diff --git a/src/Avalonia.Controls/WindowBase.cs b/src/Avalonia.Controls/WindowBase.cs index 2fba8619c6..56ffd315f1 100644 --- a/src/Avalonia.Controls/WindowBase.cs +++ b/src/Avalonia.Controls/WindowBase.cs @@ -163,7 +163,7 @@ namespace Avalonia.Controls } /// - /// Shows the popup. + /// Shows the window. /// public virtual void Show() { @@ -181,6 +181,7 @@ namespace Avalonia.Controls } PlatformImpl?.Show(); Renderer?.Start(); + OnOpened(EventArgs.Empty); } finally {