如何在程序的第一次启动时安排可对接的视图。 AvalonDock

时间:2015-12-05 08:35:58

标签: c# wpf avalondock

在程序开始时,我总是看到我的FeatureViewTemplate显示在FileStatsViewTemplate内的右侧: enter image description here

但我希望区域的排列方式为左侧File Stats和右侧FeatureArea。像那样: enter image description here

如何在程序的第一次启动时安排FileStatsFeatureArea *,如果没有创建“AvalonDock.config”文件按计划* )?有可能吗?

1 个答案:

答案 0 :(得分:1)

一种解决方案是添加两个LayoutAnchorablePane和一个LayoutDocumentPane。

 <avalonDock:LayoutRoot>
    <avalonDock:LayoutPanel Orientation="Horizontal">
      <avalonDock:LayoutAnchorablePane Name="FirstAnchorablePane"/>
      <avalonDock:LayoutDocumentPane/>
      <avalonDock:LayoutAnchorablePane Name="SecondAnchorablePane"/>
    </avalonDock:LayoutPanel>
  </avalonDock:LayoutRoot>

相应地,在LayoutInitializer中使用相应的内容初始化两个可锚定的窗格。

        var item = anchorableToShow.Content; 
        var toolsPane = layout.Descendents().OfType<LayoutAnchorablePane>().FirstOrDefault(d => d.Name == "SecondAnchorablePane");
        var firstPane = layout.Descendents().OfType<LayoutAnchorablePane>().FirstOrDefault(d => d.Name == "FirstAnchorablePane");
        if (toolsPane != null)
        {
            if(item is RecentFilesViewModel)
                toolsPane.Children.Add(anchorableToShow);
            if (item is FileStatsViewModel)
                firstPane.Children.Add(anchorableToShow);
            return true;
        }

但是只有一个LayoutAnchorablePane,也许有办法这样做。完全不知道,知道也会很有趣。