0
我有以下AvalonDock(我使用的是1.3版本)佈局:AvalonDock DocumentPane無法正常恢復
<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的Loaded事件的事件處理程序:
void MainDockingManager_Loaded(object sender, RoutedEventArgs e)
{
_layoutStateFilePath = Path.Combine(ApplicationSettingsService.UserSettingsDirectory, LayoutStateFileName);
if (File.Exists(_layoutStateFilePath))
{
MainDockingManager.RestoreLayout(_layoutStateFilePath);
}
}
窗口關閉事件處理程序:
private void ApplicationViewsWindow_Closing(object sender, CancelEventArgs e)
{
MainDockingManager.SaveLayout(_layoutStateFilePath);
}
保存和恢復所有DockablePanes工作f ine,但問題是DocumentPane無法正確恢復。當我嘗試打開新文檔時,他們沒有顯示。
我用立即窗口在Visual Studio中進行以下查詢
調用MainDockingManager.RestoreLayout()
前:
documentPane.IsMainDocumentPane
true
調用RestoreLayout()
後:
documentPane.IsMainDocumentPane
null
MainDockingManager.MainDocumentPane.GetHashCode()
16306004
documentPane.GetHashCode()
15125992
這樣做可以調用RestoreLayout()
後也不起作用:
MainDockingManager.MainDocumentPane = documentPane;
任何想法我做錯了什麼,或者如果有什麼我在這裏失蹤?
視覺上發生了什麼,在您的用戶界面?有沒有加載任何東西? – Damascus