2013-10-15 66 views
1

我稍微同样的问题就像是问这里befoere: How to place instance of window in LayoutAnchorable AvalonDock 2AvalonDock LayoutAnchorable犯规显示控制

在这种情况下,我使用AvalonDock 2.0时许,Caliburn.Micro和Mahapps.Metro。

看来,我实际上可以将我的viewmodel映射到'LayoutAnchorable',但是当我点击它时,它不会显示该控件的内容(它是MetroContentControl)。我应该如何放置它......它看起来像一个看不见的ContentControl正在显示。

XAML码

<ad:LayoutRoot.BottomSide> 
        <ad:LayoutAnchorSide> 
         <ad:LayoutAnchorGroup> 
          <ad:LayoutAnchorable Title="Test" ContentId="123"> 
           <DataTemplate> 
            <Controls:MetroContentControl cal:View.Model="{Binding ActiveLogViewModel}" /> 
           </DataTemplate> 
          </ad:LayoutAnchorable> 
         </ad:LayoutAnchorGroup> 
        </ad:LayoutAnchorSide> 
       </ad:LayoutRoot.BottomSide> 

是否有AD 2.0在使用和放置控制的限制?这样做的最佳做法是什么?

更新

<ad:DockingManager x:Name="adManagerTop" DocumentsSource="{Binding DocumentSources}" Margin="0,0,0,40"> 
      <ad:DockingManager.Theme> 
       <ad:MetroTheme /> 
      </ad:DockingManager.Theme> 
      <ad:DockingManager.LayoutItemContainerStyle> 
       <Style TargetType="{x:Type ad:LayoutItem}"> 
        <Setter Property="Title" Value="{Binding Model.Title}"/> 
        <Setter Property="CanClose" Value="{Binding Model.CanClose}"/> 
        <Setter Property="CanFloat" Value="{Binding Model.CanFloat}" /> 
       </Style> 
      </ad:DockingManager.LayoutItemContainerStyle> 
      <ad:DockingManager.LayoutItemTemplate> 
       <DataTemplate> 
        <Controls:MetroContentControl cal:View.Model="{Binding Content}" /> 
       </DataTemplate> 
      </ad:DockingManager.LayoutItemTemplate> 
      <ad:LayoutRoot> 
       <ad:LayoutPanel> 
        <ad:LayoutDocumentPane /> 
       </ad:LayoutPanel> 
      </ad:LayoutRoot> 

    </ad:DockingManager> 

回答

0

我只想结合AnchorablesSourceDocumentsSource我没有像这样在我的应用程序

https://github.com/AndersMalmgren/FreePIE/blob/master/FreePIE.GUI/Shells/MainShellView.xaml

然后启动应用程序,就像你想要整理板当用户第一次启动程序时。使用XmlLayoutSerializer将状态保存到磁盘,将XML作为您的程序中的资源。加载布局时,请使用光盘上的布局(如果存在)或使用嵌入在程序中的布局。

+0

使用布局配置文件的想法还没有跨过我的想法。我将在未来尝试使用它。问题是,如果锚没有隐藏,可以看到控件的内容,但是如果隐藏,它不会。 – Insight

+0

它再次,我现在知道为什么。 MetroWindow将'AllowTransparency'设置为true。如果我将其设置为false,则此问题消失,嵌入式Web浏览器似乎也可以工作。不过,我需要一个可能的布局配置。 – Insight