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