如何使用AvalonDock 2.0创建没有自动隐藏的底部面板?

时间:2013-07-31 13:58:31

标签: c# wpf avalondock

我正在使用AvalonDock 2.0

我觉得它应该是非常基本的,但文档并没有说出来,我已经玩了2个小时试图弄明白。所以,如果这太简单了,我很抱歉。

我想要标题所说的内容。该文档提到了如何制作一个底部侧面板但只有一个自动隐藏的面板,这不是我想要的。

我试图在代码隐藏中切换它的自动隐藏但高度没有受到影响所以每次应用程序启动时用户都必须将其拖动以查看面板的内容。

2 个答案:

答案 0 :(得分:4)

有点hacky但这对我有用:

    <xcad:DockingManager x:Name="DockingManager" Grid.Row="1" DocumentsSource="{Binding Documents}" Loaded="DockingManager_OnLoaded">
        <xcad:LayoutRoot>
            <xcad:LayoutPanel Orientation="Horizontal">
                <xcad:LayoutDocumentPane></xcad:LayoutDocumentPane>
                <xcad:LayoutAnchorablePane DockWidth="Auto" SelectedContentIndex="0">
                    <xcad:LayoutAnchorable Title="Right">
                        <Label>Right</Label>
                    </xcad:LayoutAnchorable>
                </xcad:LayoutAnchorablePane>
            </xcad:LayoutPanel>
            <xcad:LayoutRoot.BottomSide>
                <xcad:LayoutAnchorSide>
                    <xcad:LayoutAnchorGroup>
                        <xcad:LayoutAnchorable x:Name="OutputAnchorable" Title="Output">
                            <Label>Bottom</Label>
                        </xcad:LayoutAnchorable>
                    </xcad:LayoutAnchorGroup>
                </xcad:LayoutAnchorSide>
            </xcad:LayoutRoot.BottomSide>
        </xcad:LayoutRoot>
    </xcad:DockingManager>

然后在后面的代码中:

    private void DockingManager_OnLoaded(object sender, RoutedEventArgs e)
    {
        OutputAnchorable.ToggleAutoHide();

        // You might want to do this to get a reasonable height
        var root = (LayoutAnchorablePane)OutputAnchorable.Parent;
        root.DockHeight = new GridLength(100);
    }

答案 1 :(得分:3)

你需要这样的东西

<xcad:LayoutPanel Orientation="Vertical">
                <xcad:LayoutPanel Orientation="Horizontal"  >   


</xcad:LayoutPanel>
</xcad:LayoutPanel>

第二个布局将创建所有混合面板,第一个将以垂直方式创建顶部或底部