I am trying to create an interface which has a Outlook Bar in the LHS, a tab control in the center and another Outlook bar on the RHS. Currently I have
<Grid Name="GridMain"> <Grid.ColumnDefinitions> <ColumnDefinition Width="*"/> </Grid.ColumnDefinitions> <igDock:XamDockManager HorizontalAlignment="Stretch" Name="XamDockManager1" VerticalAlignment="Stretch" xmlns:igDock="http://infragistics.com/DockManager" Width="Auto" > <igDock:XamDockManager.Panes> <igDock:SplitPane igDock:XamDockManager.InitialLocation="DockedLeft" Width="Auto"> <igDock:ContentPane Header="Pane 1" igDock:SplitPane.RelativeSize="100, 100" AllowClose="False"> <igOutlookBar:XamOutlookBar Name="XamOutlookBar1" Margin="0" >
OTHER CODE HERE IS NOT RELEVANT
</igOutlookBar:XamOutlookBar>
</igDock:ContentPane> <igDock:ContentPane Header="Pane 2" igDock:SplitPane.RelativeSize="100, 100" AllowClose="False"> <igWindows:XamTabControl Height="Auto" Name="XamTabControl1" Width="Auto"> <igWindows:TabItemEx Header="tabItemEx1" Name="tabItemEx1" HorizontalContentAlignment="Left" Margin="0" VerticalContentAlignment="Top">
</igWindows:TabItemEx> </igWindows:XamTabControl> </igDock:ContentPane> <igDock:ContentPane Header="Pane 3" igDock:SplitPane.RelativeSize="50,50" AllowClose="False" IsPinned="True"> </igDock:ContentPane> </igDock:SplitPane> </igDock:XamDockManager.Panes> </igDock:XamDockManager> </Grid>
All pretty Micky Mouse stuff I would think. I want the app to open with the DockManager and the Panes contain therein filling the whole of the form. I would have thought this would have been very simple. Some period of time later I think I am best off asking for the solution!
Thanks
John
The point of the thread was a discussion about having the docking panes fill the available space within the xamDockManager which currently isn't supported. In my previous reply to you I basically outlined the 2 options that you do have. You can set the Content of the xamDockManager to any element - including the xamTabControl you are using right now. When you do this that control will fill the available area and the docked panes will be positioned around that central content. This would not provide any docking/dragging capability within that center area. A slightly modified approach would be to put a DocumentContentHost as the Content of the xamDockManager and put the xamTabControl within that. As I mentioned, this will provide a VS style tabbed interface. As with VS's tabbed documents, that central area always fills the available space even if you close/float all the documents within it so its not technically the same as having the docked panes fill the available area - which is what that thread (and your original stated request) was looking to acheive. So taking your initial xaml snippet, taking the first approach would look like:
<igDock:XamDockManager HorizontalAlignment="Stretch" Name="XamDockManager1" VerticalAlignment="Stretch" xmlns:igDock="http://infragistics.com/DockManager"> <igDock:XamDockManager.Panes> <igDock:SplitPane igDock:XamDockManager.InitialLocation="DockedLeft"> <igDock:ContentPane Header="Pane 1" AllowClose="False"> <igOutlookBar:XamOutlookBar Name="XamOutlookBar1" Margin="0" >
</igDock:ContentPane> </igDock:SplitPane> <igDock:SplitPane igDock:XamDockManager.InitialLocation="DockedRight"> <igDock:ContentPane Header="Pane 3" AllowClose="False"> </igDock:ContentPane> </igDock:SplitPane> </igDock:XamDockManager.Panes> <igWindows:XamTabControl Name="XamTabControl1"> <igWindows:TabItemEx Header="tabItemEx1" Name="tabItemEx1" HorizontalContentAlignment="Left" Margin="0" VerticalContentAlignment="Top"/> </igWindows:XamTabControl> </igDock:XamDockManager> </Grid>
I read the thread which obviously didn't help me! What would you recommend as the controls I should use to arrive at the following style of interface. Note that the top and bottom of the screen portions are fine.
Top of Screen = Ribbon
Middle portion of screen
LHS = Outlook bar with stack panel
Center of screen will be tab control (or similar)
RHS = Another Outlook bar with a stack panel.
It would be a requirement that the middle portion of the screen fills it's portion of the screen. Docking capabilities would be prefereable in this area but it would not be the end of the world if this were not possible. I don't need sample code (I hope!) simply the control hierarchy.
Bottom of Screen = Status Bar
Surely this is a fairly standard requirement?
BTW I really appreciate how quick you guys get onto these questions.
You may want to review this thread since it poses a similar question - http://forums.infragistics.com/forums/t/10626.aspx. Essentially the xamDockManager is a ContentControl and the Panes collection are meant to be positioned around that content. That content can be any control (e.g. your tabcontrol) or a DocumentContentHost if you want a VS style tabbed mdi interface.