如何以编程方式向 Avalon Dock 添加更多窗格

问题描述 投票:0回答:1

我正在使用 Avalon Dock v2,我想做的就是拥有它,这样当我点击按钮时,它会在我的布局中添加另一个窗格。

这是我现有的窗格,但我不知道按下按钮时向其中添加另一个窗格的语法。

<avalonDock:DockingManager x:Name="dockingManager">
    <avalonDock:LayoutRoot>
        <avalonDock:LayoutPanel Orientation="Horizontal">
            <avalonDock:LayoutDocumentPaneGroup >
                <avalonDock:LayoutDocumentPane x:Name="mainDocumentPaneGroup">
                               
                </avalonDock:LayoutDocumentPane>
            </avalonDock:LayoutDocumentPaneGroup>
        </avalonDock:LayoutPanel>
    </avalonDock:LayoutRoot>
 </avalonDock:DockingManager>

这是我在按钮内放入的内容。

 DockPanel CNPCTab = new DockPanel() { };
 CNPCTab.Name = "CNPCTab";

 mainDocumentPaneGroup.

我确实没有看到任何方法可以让我将初始化的窗格添加到我在 xaml 中初始化的组中。

c# avalondock
1个回答
9
投票

我不知道你是否还需要这个答案,但我也需要它,但在任何地方都找不到好的答案,所以我在这里提供。 您需要创建一个 LayoutArchorable,将其 Content 设置为您的 UserControl,然后调用 LayoutArchorable 上的 AddToLayout 方法以使其添加自身。 就我而言,我希望新窗口以浮动方式启动,以便用户可以决定将其放置在何处,但您仍然必须先将其分配到某个位置,然后才能浮动。

    LayoutAnchorable la = new LayoutAnchorable { Title = "New Window", FloatingHeight = 400, FloatingWidth = 500, Content = new YourUserControl() };
    la.AddToLayout(dockingManager, AnchorableShowStrategy.Right);
    la.Float();

在此示例中,我在 XAML 中命名了 DockingManager,以便我可以从后面的代码访问它。

© www.soinside.com 2019 - 2024. All rights reserved.