I am trying to create the two column layout that can be re-sized to fill the whole content. Take a look at my xaml snippet below.
<igDock:XamDockManager.Panes>
<igDock:SplitPane x:Name="MainSplit" SplitterOrientation="Vertical" igDock:XamDockManager.InitialLocation="DockedLeft" >
<igDock:SplitPane x:Name="PanelsSplit" SplitterOrientation="Horizontal">
<igDock:SplitPane x:Name="LeftTopSplit" igDock:XamDockManager.InitialLocation="DockedTop">
<igDock:ContentPane x:Name="OverView" cal:RegionManager.RegionName="Overview" MinWidth="200" />
</igDock:SplitPane>
<igDock:SplitPane x:Name="LeftBottomSplit" igDock:XamDockManager.InitialLocation="DockedTop">
<igDock:ContentPane x:Name="SectionList" cal:RegionManager.RegionName="Panels" MinWidth="200" />
<igDock:SplitPane x:Name="DocumentsSplit" SplitterOrientation="Horizontal" SizeChanged="DocumentsSplit_SizeChanged">
<igDock:SplitPane x:Name="RightTopSplit" igDock:XamDockManager.InitialLocation="DockedTop">
<igDock:ContentPane x:Name="SectionDetails" cal:RegionManager.RegionName="Documents" MinWidth="200" AllowDockingRight="False" />
<igDock:SplitPane x:Name="RightBottomSplit" igDock:XamDockManager.InitialLocation="DockedTop">
<igDock:ContentPane x:Name="SessionDetails" cal:RegionManager.RegionName="SessionDetails" MinWidth="200" AllowDockingRight="False" />
</igDock:XamDockManager.Panes>
Each column has the top and bottom panes, and each column is hosted by another splitPane so they can be separated vertically. However the problem is the main split panel (root) won't fill the content of the dockmanager.
I was able to do this using the WinForms Infragistics DockManager control very easily by setting the Dock property of the dockManager to Fill and have the contents inside stretch.
How can I achieve the same using the WPF dockManager?
Thanks
I need the same behavior.
Why infragistics would deliver a control that would not have the same functionality as their WinForms control that we have come to love bafles me to this day.
I did some experimenting.
Here is what I ended up with that simulate the splitter control filling in the page.
<igDock:XamDockManager x:Name="_xamDockManager" HorizontalAlignment="Stretch" Margin="0,0,0,0" VerticalAlignment="Stretch" Content="" NavigationOrder="VisibleOrder"> <igDock:XamDockManager.Panes> <igDock:SplitPane Height="{Binding Path=ActualHeight, ElementName=_xamDockManager, Mode=OneWay}" Width="{Binding Path=ActualWidth, ElementName=_xamDockManager, Mode=OneWay}"> <igDock:TabGroupPane> <igDock:ContentPane AllowDocking="True" /> </igDock:TabGroupPane> <igDock:TabGroupPane> <igDock:ContentPane /> </igDock:TabGroupPane> </igDock:SplitPane> </igDock:XamDockManager.Panes> </igDock:XamDockManager>
You can just copy the code in any window and you will see the results.
However! Tere is still area on the far right that does not get covered.
Can someone give some insight why is that still there?
I'm sorry but the control isn't currently set up to support this type of behavior. While the SplitPane does have its own Width/Height, it is the containing DockManagerPanel that sizes and positions the root panes but there really isn't any supported means to alter that element or the xamdockmanager to provide the behavior you are looking for. You should probably submit a suggestion describing the behavior you want to see added to the control.
Thanks for the quick response. I cannot use the DocumentContentHost because it always displays the panes as TabGroup. The requirement for me is to simply displace multiple panes without a real document area. The content does need to be a pane because I need the float/dock/pin capabilities. And really, there is really no concept of a single "content" pane. The requirement is that each pane is equivalently as important so that each one is considered a conent pane. What other options do I have? Can I extend this SplitPane to make it work? or are there any base classes I can derive from?
You may want to review this thread since it poses a similar question - http://forums.infragistics.com/forums/t/10626.aspx. There is no Dock property on UltraDockManager so I assume you were referring to the LayoutStyle property and setting it to FillContainer whereby the last visible DockArea pane would fill the remaining area. As mentioned in the referenced thread, you can put a DocumentContentHost as the Content of the XamDockManager or if the content doesn't have to be a pane, then you can just put whatever element you want to fill as the content.