将子窗口作为主窗口的一部分打开

Opening a subwindow as part of the MainWindow

概览

大家好,我正在开发一个 C# WPF 桌面应用程序项目,用于创建和编辑一个复杂的系统。简单地将其视为可以将汽车及其所有子组件的完整描述放在一起的编辑器。 我希望汽车的每个不同组件都有一个单独的编辑器 window。就像 select 汽车上的涂装和 tada 一样 window 出现在您可以完全自定义汽车涂装的地方。然后,当您单击引擎时,同一侧window 会被关于汽车引擎的新编辑器所取代。

问题

如何使我已经使用 xaml 和代码隐藏创建的编辑器 window 显示为 MainWindow 的一部分,作为边栏嵌入? 如果可能的话,我会避免使用任何第 3 方库,但如果没有其他 'clean' 方法,那么我也愿意接受该领域的建议。

我与设计器一起创建了功能齐全的 windows,编写了所有代码以使其工作,现在我只需要找到一种方法,通过按一下按钮将它们嵌入到 MainWindow 中.

感谢您的回答

如果你想要一些东西成为“主窗口的一部分”,你不应该创建另一个 window 因为 Window 不能是 child 另一个元素。

您可能想要做的是将 XAML 标记和 code-behind 从当前子 window 移动到 MainWindow 中的 UserControl. You can then put the UserControl(s) into an appropriate Panel .

例如,如果您希望 UserControl 在 window 中显示侧边栏,您可以使用 DockPanel 将其停靠在右侧:

<DockPanel>

    <Border DockPanel.Dock="Right" Background="Yellow">
        <local:SidebarUserControl Margin="10" />
    </Border>

    <TextBlock>main content...</TextBlock>

</DockPanel>