C# XAML:指定的元素已经是另一个元素的逻辑子元素。先把它断开

C# XAML:指定的元素已经是另一个元素的逻辑子元素。先把它断开,c#,wpf,visual-studio,xaml,C#,Wpf,Visual Studio,Xaml,我正在wpf中构建一个自定义模式框,类似这样 我希望用户使用一些自定义模态元素从XAML添加模态子控件元素。 因为我们不能在主窗口内创建子窗口。 因此,我使用xaml和c#间接地实现了这一点 这是我实现Modal的示例代码 MainWindow.xaml <local:ModalWindow> <Border Background="Red" Width="400" Height="400"> <Button Width="

我正在wpf中构建一个自定义模式框,类似这样

我希望用户使用一些自定义模态元素从XAML添加
模态子控件元素
。 因为我们不能在主窗口内创建子窗口。 因此,我使用xaml和c#间接地实现了这一点

这是我实现Modal的示例代码

MainWindow.xaml

<local:ModalWindow>
        <Border Background="Red" Width="400" Height="400">
            <Button Width="110"></Button>
        </Border>
</local:ModalWindow>
加载时会显示运行时错误

 Error: "Specified element is already the logical child of another element. Disconnect it first"

有没有办法先断开此节点与主窗口的连接,然后将此节点作为其子节点添加到我的新窗口中。


请帮忙

不能在不同的可视树中添加相同的元素。您需要首先从以前的可视化树中删除元素,或者添加新的控件实例。您应该真正使用MVVM和命令模式来实现这一点。WPF就是为了支持它而构建的。按照“你的方式”去做意味着你必须一路与你的技术抗争。
 Error: "Specified element is already the logical child of another element. Disconnect it first"