Как оформить стыковочные виды при первом запуске программы. AvalonDock

В начале программы я всегда вижу свой FeatureViewTemplate показано на правой стороне внутри FileStatsViewTemplate как это:

Но хотелось бы, чтобы расположение зон было в таком порядке File Stats на левой стороне и FeatureArea на правой стороне. Как это:

Как это сделать FileStats а также FeatureArea при первом запуске программы (* когда нет файла "AvalonDock.config", созданного программой *)? Является ли это возможным?

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, возможно, есть способ сделать это. Понятия не имею, было бы интересно узнать тоже.

Другие вопросы по тегам