diff --git a/samples/interop/WindowsInteropTest/EmbedToWpfDemo.xaml.cs b/samples/interop/WindowsInteropTest/EmbedToWpfDemo.xaml.cs index 5ca2768d9e..1a91d67b49 100644 --- a/samples/interop/WindowsInteropTest/EmbedToWpfDemo.xaml.cs +++ b/samples/interop/WindowsInteropTest/EmbedToWpfDemo.xaml.cs @@ -28,10 +28,7 @@ namespace WindowsInteropTest InitializeComponent(); var view = new MainView(); - view.AttachedToVisualTree += delegate - { - view.AttachDevTools(); - }; + view.AttachDevToolsToTopLevelOnVisualTreeAttachment(); Host.Content = view; var btn = (Avalonia.Controls.Button) RightBtn.Content; btn.Click += delegate diff --git a/src/Avalonia.Diagnostics/DevTools.xaml.cs b/src/Avalonia.Diagnostics/DevTools.xaml.cs index 85c3cfddd8..06965ece89 100644 --- a/src/Avalonia.Diagnostics/DevTools.xaml.cs +++ b/src/Avalonia.Diagnostics/DevTools.xaml.cs @@ -14,12 +14,21 @@ using Avalonia.VisualTree; namespace Avalonia { - public static class WindowExtensions + public static class DevToolsExtensions { - public static void AttachDevTools(this Control control) + public static void AttachDevTools(this TopLevel control) { - Avalonia.Diagnostics.DevTools.Attach((TopLevel)control.GetVisualRoot()); + Avalonia.Diagnostics.DevTools.Attach(control); } + + public static void AttachDevToolsToTopLevelOnVisualTreeAttachment(this Control control) + { + (control.GetVisualRoot() as TopLevel)?.AttachDevTools(); + control.AttachedToVisualTree += delegate + { + (control.GetVisualRoot() as TopLevel)?.AttachDevTools(); + }; + } } } diff --git a/src/Windows/Avalonia.Win32.Interop/Avalonia.Win32.Interop.csproj b/src/Windows/Avalonia.Win32.Interop/Avalonia.Win32.Interop.csproj index e2d764c62c..c5cd2ab64d 100644 --- a/src/Windows/Avalonia.Win32.Interop/Avalonia.Win32.Interop.csproj +++ b/src/Windows/Avalonia.Win32.Interop/Avalonia.Win32.Interop.csproj @@ -49,7 +49,7 @@ - + diff --git a/src/Windows/Avalonia.Win32.Interop/Wpf/Helpers.cs b/src/Windows/Avalonia.Win32.Interop/Wpf/WpfInteropExtensions.cs similarity index 94% rename from src/Windows/Avalonia.Win32.Interop/Wpf/Helpers.cs rename to src/Windows/Avalonia.Win32.Interop/Wpf/WpfInteropExtensions.cs index 9c1f39e86b..6433ff05e0 100644 --- a/src/Windows/Avalonia.Win32.Interop/Wpf/Helpers.cs +++ b/src/Windows/Avalonia.Win32.Interop/Wpf/WpfInteropExtensions.cs @@ -6,7 +6,7 @@ using System.Threading.Tasks; namespace Avalonia.Win32.Interop.Wpf { - static class Helpers + static class WpfInteropExtensions { public static System.Windows.Point ToWpfPoint(this Point pt) => new System.Windows.Point(pt.X, pt.Y); public static Point ToAvaloniaPoint(this System.Windows.Point pt) => new Point(pt.X, pt.Y);