瀏覽代碼

Merge branch 'master' into compiledbindings-themes

Tako 3 年之前
父節點
當前提交
c9e7ce3bed
共有 1 個文件被更改,包括 13 次插入2 次删除
  1. 13 2
      src/Avalonia.Controls/ValidatingToplevel.cs

+ 13 - 2
src/Avalonia.Controls/ValidatingToplevel.cs

@@ -236,7 +236,18 @@ internal class ValidatingWindowImpl : ValidatingWindowBaseImpl, IWindowImpl
 
     public void SetTitle(string title) => Inner.SetTitle(title);
 
-    public void SetParent(IWindowImpl parent) => Inner.SetParent(parent);
+    public void SetParent(IWindowImpl parent)
+    {
+        //Workaround. SetParent will cast IWindowImpl to WindowImpl but  ValidatingWindowImpl isn't actual WindowImpl so it will fail with InvalidCastException.
+        if (parent is ValidatingWindowImpl validatingToplevelImpl)
+        {
+            Inner.SetParent(validatingToplevelImpl.Inner);
+        }
+        else
+        {
+            Inner.SetParent(parent);
+        }
+    }
 
     public void SetEnabled(bool enable) => Inner.SetEnabled(enable);
 
@@ -323,4 +334,4 @@ internal class ValidatingPopupImpl : ValidatingWindowBaseImpl, IPopupImpl
 
     public IPopupPositioner PopupPositioner => Inner.PopupPositioner;
     public void SetWindowManagerAddShadowHint(bool enabled) => Inner.SetWindowManagerAddShadowHint(enabled);
-}
+}