2012-12-11 3 views
3

1.3에서 2.0으로 WPF C# 응용 프로그램 (MVVM 아님)에서 AvalonDock을 업그레이드하고 있습니다. 1.3 나는 오랫동안 사용 된 사용자 정의 창을 배치 할 수 있었다 DockableContent : XAML :LayoutAnchorable AvalonDock 2에 윈도우의 인스턴스를 배치하는 방법

<!--<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>--> 

코드 뒤에 :

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

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

:

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

코드 MainWindow를에서이 instantited 요소를 표시합니다 AvalonDock 2를 사용하여 LayoutAnchorable 또는 다른 레이아웃 요소 (이전에는 DockableContent)에 JournalWindow의 인스턴스를 배치하고 표시하는 방법은 무엇입니까?

답변

4

새 버전으로 AvalonDock이 많이 변경되었습니다. AD 2.0에서는 두 가지 옵션이 있습니다 : 1) 가장 간단한 방법은 표준 UserControl (귀하의 경우 JournalController를 UserControl에서 파생 된 DockableContent 대신 파생 됨)을 만들고 컨트롤을 LayoutAnchorable (내용으로)에 저장하는 것입니다. 샘플 코드 : http://avalondock.codeplex.com/downloads/get/558780

아도

+0

:

<UserControl x:Class="Test.JournalWindow" ...> ... </UserControl> <LayoutAnchorable Title="My Journal Window"> <testNamespace:JournalWindow/> </LayoutAnchorable> 

2) 권장 하나는 MVVM 접근 방식을 사용하고이를 위해 내가 AvalonDock 라이브러리에 부착 된 샘플 프로젝트 MVVMTestApp 당신을 가리키는 것입니다 만약 JournalWindow를 컨트롤로 사용한다면 거기에서 얻을 수있는 어떤 방법이든지 ** 코드는 'bool isHidden = JournalWindow.IsHidden; ? – as74

+1

실제로는 새 창을 부동 창으로 여는 것을 실제로 다루지 않는 것으로 보입니다. –

관련 문제