Browse Source

Fixed issues from PR comments #1016

Nikita Tsukanov 8 years ago
parent
commit
76bc7aaafb

+ 1 - 4
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

+ 12 - 3
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();
+	        };
+	    }
 	}
 }
 

+ 1 - 1
src/Windows/Avalonia.Win32.Interop/Avalonia.Win32.Interop.csproj

@@ -49,7 +49,7 @@
     </Compile>
     <Compile Include="Properties\AssemblyInfo.cs" />
     <Compile Include="Wpf\CursorShim.cs" />
-    <Compile Include="Wpf\Helpers.cs" />
+    <Compile Include="Wpf\WpfInteropExtensions.cs" />
     <Compile Include="Wpf\WpfAvaloniaHost.cs" />
     <Compile Include="Wpf\WpfMouseDevice.cs" />
     <Compile Include="Wpf\WpfTopLevelImpl.cs" />

+ 1 - 1
src/Windows/Avalonia.Win32.Interop/Wpf/Helpers.cs → 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);