как скрыть / переключить по умолчанию панель DockingPane в AvalonDock? - PullRequest
2 голосов
/ 27 сентября 2010

Вот разметка XAML.Я пытаюсь сделать панель инструментов по умолчанию скрытой.Я видел в учебнике что-то вроде этого: Command = "ad: DockableContentCommands.ToggleAutoHide".

       <ad:DockingManager Name="dockingManager">
        <ad:ResizingPanel Orientation="Horizontal" >

            <ad:ResizingPanel Orientation="Vertical">
                <ad:DockablePane>
                    <ad:DockableContent Title="Events">
                        ....
                    </ad:DockableContent>
                </ad:DockablePane>
            </ad:ResizingPanel>

            <ad:ResizingPanel Orientation="Horizontal" >
                <ad:DockablePane Name="tools" >
                    <ad:DockableContent Name ="search" > ... </ad:DockableContent>
                    <ad:DockableContent Name ="results" > ... </ad:DockableContent>
                </ad:DockablePane>
            </ad:ResizingPanel>

        </ad:ResizingPanel>
    </ad:DockingManager>

как скрыть / переключить по умолчанию DockingPane в разметке или коде?

Спасибо RR

Ответы [ 3 ]

5 голосов
/ 19 августа 2011

Вы, наверное, уже поняли это, но для других это работает для меня:

XAML:

       <ad:DockingManager Loaded="dockManager_Loaded">

        <...>

        <ad:DockableContent Name="dockName" >
            <TextBlock Text="Something HERE"/>
        </ad:DockableContent>

        <...>

C #:

    private void dockManager_Loaded(object sender, RoutedEventArgs e)
    {
         dockName.ToggleAutoHide();
    }
    private void aButton_Click(object sender, RoutedEventArgs e)
    {
         dockName.Activate();
    }
1 голос
/ 20 декабря 2010

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

0 голосов
/ 23 марта 2012

XAML:

<ad:DockingManager Name="dockingManager"                        
                   Loaded="OnDockManagerLoaded" 
                   Mouse.MouseDown="dockingManager_MouseDown">
     <ad:ResizingPanel Orientation="Vertical">
          <ad:DockablePane x:Name="chartDockablePane">
               <ad:DockableContent x:Name="chartDockableContent" 
                                   DockableStyle="AutoHide">
                     <..some content/>
                </ad:DockableContent>
           </ad:DockablePane>
    </ad:ResizingPanel>
</ad:DockingManager>

CS код позади:

private bool _forcedToAutoHide;

private void OnDockManagerLoaded(object sender, RoutedEventArgs e)
{
    chartDockablePane.ToggleAutoHide();
    _forcedToAutoHide = true;
}

private void dockingManager_MouseDown(object sender, MouseButtonEventArgs e)
{
    if (!_forcedToAutoHide)
    return;
    _forcedToAutoHide = false;
    chartDockableContent.Activate();
    chartDockablePane.ToggleAutoHide();
}
...