Как создать нижнюю панель без автоматического скрытия с помощью AvalonDock 2.0?

Я использую AvalonDock 2.0

Я чувствую, что это должно быть довольно просто, но документация ничего не говорит, и я потратил 2 часа, чтобы попытаться понять это. Итак, извините, если это слишком просто.

Я хочу именно то, что говорит название. В документации упоминается, как сделать нижнюю боковую панель, но только автоматически скрытую, а это не то, что мне нужно.

Я пытался включить его автоматическое скрытие в коде позади, но на высоту это не повлияло, поэтому каждый раз, когда приложение запускается, пользователь должен перетаскивать его вверх, чтобы увидеть содержимое панели.

2 ответа

Немного хакерский, но это сработало для меня:

    <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);
    }

Вам нужно что-то вроде этого

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


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

Второй макет создаст все панели микширования, первый создаст верх или низ по вертикали.

Другие вопросы по тегам