レイアウトを保存してロードするために、こちらの手順に従いましたが、うまくいきませんでした。
私はこれXAML
を中に持っていMainWindow
ます:
<StackPanel Orientation="Vertical">
<Button Content="Save"
Click="SaveButton_Click"/>
<Button Content="Load"
Click="LoadButton_Click"/>
<ad:DockingManager x:Name="myDM">
<ad:LayoutRoot>
<ad:LayoutPanel>
<ad:LayoutDocumentPane>
<ad:LayoutDocument Title="Document">
<TextBox />
</ad:LayoutDocument>
</ad:LayoutDocumentPane>
</ad:LayoutPanel>
<ad:LayoutRoot.LeftSide>
<ad:LayoutAnchorSide>
<ad:LayoutAnchorGroup>
<ad:LayoutAnchorable Title="Left">
<TextBox/>
</ad:LayoutAnchorable>
</ad:LayoutAnchorGroup>
</ad:LayoutAnchorSide>
</ad:LayoutRoot.LeftSide>
</ad:LayoutRoot>
</ad:DockingManager>
</StackPanel>
ボタン クリックのイベント ハンドラーは次のとおりです。
private void SaveButton_Click(object sender, RoutedEventArgs e)
{
XmlLayoutSerializer layoutSerializer = new XmlLayoutSerializer(myDM);
using (var writer = new StreamWriter("test"))
{
layoutSerializer.Serialize(writer);
}
}
private void LoadButton_Click(object sender, RoutedEventArgs e)
{
XmlLayoutSerializer layoutSerializer = new XmlLayoutSerializer(myDM);
using (var reader = new StreamReader("test"))
{
layoutSerializer.Deserialize(reader);
}
}
ウィンドウが表示されたら、「テスト」ファイルの内容を保存をクリックします。
<?xml version="1.0" encoding="utf-8"?>
<LayoutRoot xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<RootPanel Orientation="Horizontal">
<LayoutDocumentPane>
<LayoutDocument Title="Document" IsSelected="True" IsLastFocusedDocument="True" LastActivationTimeStamp="04/12/2013 14:50:38" />
</LayoutDocumentPane>
</RootPanel>
<TopSide />
<RightSide />
<LeftSide>
<LayoutAnchorGroup>
<LayoutAnchorable AutoHideMinWidth="100" AutoHideMinHeight="100" Title="Left" />
</LayoutAnchorGroup>
</LeftSide>
<BottomSide />
<FloatingWindows />
<Hidden />
</LayoutRoot>
ここで問題が発生します。読み込みボタンをクリックすると、ドキュメントとアンカー可能なものが消え、ウィンドウに表示されるのは 2 つのボタンと、レイアウトがあるはずの空の四角形だけです。この時点で保存ボタンをクリックすると、これが「テスト」ファイルに書き込まれます。
<?xml version="1.0" encoding="utf-8"?>
<LayoutRoot xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<RootPanel Orientation="Horizontal">
<LayoutDocumentPane />
</RootPanel>
<TopSide />
<RightSide />
<LeftSide>
<LayoutAnchorGroup Id="d3710e74-e6b5-4541-8b6f-554197c29dd6" />
</LeftSide>
<BottomSide />
<FloatingWindows />
<Hidden>
<LayoutAnchorable AutoHideMinWidth="100" AutoHideMinHeight="100" Title="Left" IsSelected="True" LastActivationTimeStamp="04/12/2013 14:53:56" PreviousContainerId="d3710e74-e6b5-4541-8b6f-554197c29dd6" PreviousContainerIndex="0" />
</Hidden>
</LayoutRoot>
AvalonDock 2.0.1746.0 を使用しています。誰でもそれを修正する方法を知っていますか?