9

たとえば、Anchorable のセットを使用して AvalonDock をセットアップする場合:

<a:LayoutRoot>
    <a:LayoutPanel Orientation="Horizontal">    
        <a:LayoutAnchorablePane>
            <a:LayoutAnchorable Title="A1">
                <!-- content -->
            </a:LayoutAnchorable>
            <a:LayoutAnchorable Title="A2">
                <!-- content -->
            </a:LayoutAnchorable>
    </a:LayoutAnchorablePane>
<!-- ... -->

DockingManager (または AvalonDock の他の何か) には、閉じている Anchorables を管理する方法が組み込まれていますか? 取得して再度表示できるように、コレクションのどこかに保存されていますか?

たとえば、ユーザーが上記のコード (A1) の最初のコードを閉じると、何が起こるでしょうか?
どうすれば再表示できますか?

アンカブルを閉じて復元するための典型的なワークフローは何ですか?

4

1 に答える 1

12

タグを追加したのでxceed、Avalondock 2.0 を使用していると思います。

たとえば、ユーザーが上記のコード (A1) の最初のコードを閉じると、何が起こるでしょうか?

アンカブルが非表示になります。アンカブルに名前を付けることを選択した場合 (例: <a:LayoutAnchorable Title="A1" x:Name="myAnchorable">)、ビューのコードに が表示されthis.myAnchorable.IsHiddenますtrue

どうすれば再表示できますか?

.Show()アンカブルに対して呼び出します:this.myAnchorable.Show();


そうは言っても、Avalondock 2.0 は 1.0 とはまったく異なります。MVVM (特にバインディング) を簡単に使用できるようになったためです。したがって、ベスト プラクティスはLayoutAnchorable、XAML に静的に追加するのではなく、代わりに ViewModels のコレクションを管理することです (のAnchorablesSourceプロパティへのバインディングを使用DockingManager)。Visibilityのプロパティにバインドされている ViewModel プロパティを取得/設定するだけでよいため、アンカー可能オブジェクトを表示/非表示にするのは簡単ですLayoutAnchorableItem

Avalondock が提供する WPF の例を見ることができます。AvalonDock.MVVMTestAppこれは、コード ソースで名前が付けられたプロジェクトです。

于 2014-02-13T13:25:36.320 に答える