如何以编程方式向阿瓦隆扩展坞添加更多窗格

本文关键字:添加 扩展 阿瓦隆 编程 方式 | 更新日期: 2023-09-27 17:56:06

我正在使用 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 中初始化的组中。

如何以编程方式向阿瓦隆扩展坞添加更多窗格

我不知道

你是否还需要这个答案,但我也需要它,但在任何地方都找不到一个好的答案,所以我在这里证明它。 您需要创建一个 LayoutArchorable,将其内容设置为您的 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,以便可以从隐藏的代码访问它。