2012-11-09 2 views
0

나는 다음과 같은 AvalonDock (I 버전 1.3을 사용하고 있습니다) 레이아웃이 있습니다AvalonDock DocumentPane 제대로 복원하지

void MainDockingManager_Loaded(object sender, RoutedEventArgs e) 
    { 
     _layoutStateFilePath = Path.Combine(ApplicationSettingsService.UserSettingsDirectory, LayoutStateFileName); 

     if (File.Exists(_layoutStateFilePath)) 
     { 
      MainDockingManager.RestoreLayout(_layoutStateFilePath); 
     } 
    } 

:

<AvalonDock:DockingManager Grid.Row="1" 
           x:Name="MainDockingManager" 
           Loaded="MainDockingManager_Loaded"> 
     <AvalonDock:ResizingPanel Orientation="Vertical"> 
      <AvalonDock:ResizingPanel Orientation="Horizontal"> 
       <AvalonDock:DockablePane x:Name="LeftDockablePane" 
             AvalonDock:ResizingPanel.ResizeWidth="250" /> 
       <AvalonDock:ResizingPanel Orientation="Vertical"> 
        <AvalonDock:DocumentPaneResizingPanel> 
         <AvalonDock:DocumentPane x:Name="documentPane"/> 
        </AvalonDock:DocumentPaneResizingPanel> 
        <AvalonDock:DockablePane x:Name="BottomDockablePane" 
              AvalonDock:ResizingPanel.ResizeHeight="200" /> 
       </AvalonDock:ResizingPanel> 
      </AvalonDock:ResizingPanel> 
     </AvalonDock:ResizingPanel> 
    </AvalonDock:DockingManager> 

이것은 DockingManager의로드 이벤트에 대한 이벤트 핸들러 그리고 윈도우 닫기 이벤트 핸들러 :

private void ApplicationViewsWindow_Closing(object sender, CancelEventArgs e) 
    { 
     MainDockingManager.SaveLayout(_layoutStateFilePath); 
    } 

모든 DockablePane 저장 및 복원 f 그러나 문제는 DocumentPane이 올바르게 복원되지 않는다는 것입니다. 새 문서를 열려고하면 표시되지 않습니다.

나는 MainDockingManager.RestoreLayout()를 호출하기 전에 다음과 같은 쿼리

를 만들기 위해 비주얼 스튜디오에서 직접 실행 창을 사용했습니다 :

documentPane.IsMainDocumentPane 
true 

RestoreLayout()를 호출 한 후 :

documentPane.IsMainDocumentPane 
null 
MainDockingManager.MainDocumentPane.GetHashCode() 
16306004 
documentPane.GetHashCode() 
15125992 

가 이렇게 RestoreLayout()를 호출 한 후 어느 하나도 작동하지 않습니다.

MainDockingManager.MainDocumentPane = documentPane; 

내가 잘못하고있는 것에 대한 아이디어가 있습니까? 아니면 여기에 뭔가 빠졌습니까?

+0

UI에서 시각적으로 어떻게됩니까? 아무것도로드되지 않았습니까? – Damascus

답변

0

새 문서를 추가 할 때 명명 된 DocumentPane ("documentPane")을 사용하지 않음으로써이 문제를 해결했습니다. 대신 DockingManager.MainDocumentPane 속성을 사용하여 DocumentPane을 조작했습니다.

관련 문제