2010-09-26 9 views
2

Voici le balisage XAML. J'essaye de faire par défaut le volet "outils" caché. J'ai vu dans le tutoriel quelque chose comme ceci: Command = "ad: DockableContentCommands.ToggleAutoHide".comment cacher/basculer par défaut un DockingPane dans AvalonDock?

 <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> 

comment cacher/bascule par défaut un DockingPane dans le balisage ou un code?

Merci RR

+0

Pourriez-vous élaborer? Votre question n'est pas très claire ... –

Répondre

1

je sais que ce n'est pas la meilleure façon, mais vous pouvez configurer votre mise en page application (faire DockingPane masquées automatiquement), sauf mise en page et le charger au démarrage.

5

Vous avez probablement compris cela maintenant, mais pour d'autres cela a fonctionné pour moi:

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(); 
    } 
+0

cela n'a pas fonctionné pour moi du tout. votre dockName.ToggleAutoHide(); provoquerait une exception car il n'était pas encore visible ... Mais merci pour ton .Activate() ça m'a donné une idée pour essayer quelques trucs. Je posterai mon "hack" dans un peu. –

+0

Ok, posté le mien .. –

0

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 code derrière:

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