3

WPF C# アプリケーション (MVVM ではない) の AvalonDock を 1.3 から 2.0 にアップグレードしています。1.3 では、DockableContent: XAML: を使用している限り、カスタム ウィンドウを配置できました。

<!--<Window-->
<ad:DockableContent   x:Class="Test.JournalWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:ad="clr-namespace:AvalonDock;assembly=AvalonDock" 
        xmlns:local="clr-namespace:Test"
        xmlns:sys="clr-namespace:System;assembly=mscorlib"

        Loaded="Journal_Loaded" StateChanged="Journal_StateChanged"
        Title="Journal" Icon = "Resources/journalLog.ico" HideOnClose="True" Height="300" Width="Auto">

    <ad:DockableContent.Resources>
      </ad:DockableContent.Resources>

                <Grid>  </Grid>
</ad:DockableContent>
<!--</Window>-->

コードビハインド:

public partial class JournalWindow : DockableContent
    {
        public JournalWindow()
        {
            InitializeComponent();
        }

インスタンス化された要素を表示する MainWindow のコード:

JournalWindow journalWindow;
 journalWindow = new JournalWindow()
            {
                Name = nameJournalWindow,
                Title = "Journal"
            };

            journalWindow.IsCloseable = true;
            journalWindow.HideOnClose = true;
            journalWindow.Show(dockManager);

AvalonDock 2 を使用して、JournalWindow のインスタンスを LayoutAnchorable または他のレイアウト要素 (以前は DockableContent として) に配置して表示する方法は?

4

1 に答える 1

4

AvalonDock は新しいバージョンで大幅に変更されました。AD 2.0 には 2 つのオプションがあります。1) 最も簡単な方法は、標準の UserControl (あなたの場合は DockableContent ではなく UserControl から派生した JournalWindow) を作成し、そのコントロールを LayoutAnchorable 内に (コンテンツとして) 配置することです。サンプルコード:

<UserControl x:Class="Test.JournalWindow" ...>
...
</UserControl>

<LayoutAnchorable Title="My Journal Window">
   <testNamespace:JournalWindow/>
</LayoutAnchorable>

2) MVVM アプローチを使用することをお勧めします。このために、AvalonDock ライブラリに添付されているサンプル プロジェクト MVVMTestApp を紹介します: http://avalondock.codeplex.com/downloads/get/558780

あど

于 2012-12-12T11:18:35.833 に答える