Xceed Toolkit Plus for WPF v5.1 Documentation
Xceed.Wpf.AvalonDock Assembly / Xceed.Wpf.AvalonDock.Layout Namespace / LayoutPanel Class
Members Example


In This Topic
    LayoutPanel Class
    In This Topic
    Represents a panel that arranges child panes (e.g., LayoutAnchorablePane and  LayoutDocumentPane), which in turn contain the actual content (that is, LayoutAnchorable or LayoutDocument elements), using a specified Orientation and adding a resizer between them.
    Syntax
    'Declaration
     
    <ContentPropertyAttribute("Children")>
    <TypeDescriptionProviderAttribute(MS.Internal.ComponentModel.DependencyObjectProvider)>
    <NameScopePropertyAttribute("NameScope", System.Windows.NameScope)>
    <SerializableAttribute()>
    Public Class LayoutPanel 
       Inherits Xceed.Wpf.AvalonDock.Layout.LayoutPositionableGroup(Of ILayoutPanelElement)
       Implements ILayoutContainerILayoutElementILayoutElementWithVisibilityILayoutGroupILayoutOrientableGroupILayoutPanelElement 
    'Usage
     
    Dim instance As LayoutPanel
    Remarks

    A LayoutPanel can contain child panes directly (that is, LayoutAnchorablePane and LayoutDocumentPane). Panes in turn contain the actual content (that is, LayoutAnchorable or LayoutDocument elements, both of which derive from LayoutContent).

    A LayoutPanel can also contain "pane group" elements (i.e., LayoutAnchorablePaneGroup or LayoutDocumentPaneGroup), which group child panes together and allow various characteristics to be determined, such as the initial width/height the docked group occupies, the initial width/height of floating windows created from content dragged from them, and the orientation of the panes in the group (which is independent of the orientation of the LayoutPanel).

    The RootPanel property of the LayoutRoot class is set to an instance of this class.

    AvalonDock adheres to an MVVM design.

    The Model is represented by the classes contained in the Xceed.Wpf.AvalonDock.Layout namespace. The classes in this namespace are the layout elements in a layout model (for example LayoutAnchorable/LayoutDocument, LayoutAnchorablePane/LayoutDocumentPaneLayoutAnchorablePaneGroup/LayoutDocumentPaneGroup, etc.) that are used directly in XAML within a DockingManager to describe how the layout is composed.

    The View is represented by the classes contained in the Xceed.Wpf.AvalonDock.Controls namespace; these classes are a set of stylizable controls that show the user controls. The names of the view controls typically end with "Control" (for example, LayoutAnchorableControl is the view control, whereas LayoutAnchorable is the model element).

    The DockingManager uses various classes (such as the LayoutItem and its derived classes) to perform the role of the ViewModel, preparing the model to be consumed by the view.

    There is one and only one logical tree, which has the DockingManager as its root. Even if a control is placed in a different window (i.e., autohidden windows or floating windows), it always belong to the same logical tree below the DockingManager.

    Example
    The following shows how to use LayoutPanel, as well as various other elements.
    <xcad:DockingManager Grid.Row="1" MaxHeight="425"
                         AllowMixedOrientation="True"
                         BorderBrush="Black"
                         BorderThickness="1">
      <xcad:DockingManager.DocumentHeaderTemplate>
        <DataTemplate>
          <StackPanel Orientation="Horizontal">
            <Image Source="{Binding IconSource}" Margin="0,0,4,0"/>
            <TextBlock Text="{Binding Title}" />
          </StackPanel>
        </DataTemplate>
      </xcad:DockingManager.DocumentHeaderTemplate>
      <xcad:LayoutRoot x:Name="_layoutRoot">
        <xcad:LayoutPanel Orientation="Horizontal">
          <xcad:LayoutAnchorablePane DockWidth="200">
            <xcad:LayoutAnchorable ContentId="properties" Title="Properties" CanHide="False" CanClose="False"
                                      AutoHideWidth="240"
                                   IconSource="../Images/property-blue.png">
              <xctk:PropertyGrid NameColumnWidth="110"
                 SelectedObject="{Binding ElementName=_layoutRoot, Path=LastFocusedDocument.Content}"/>
            </xcad:LayoutAnchorable>
          </xcad:LayoutAnchorablePane>
          <xcad:LayoutDocumentPaneGroup >
            <xcad:LayoutDocumentPane>
              <xcad:LayoutDocument ContentId="document1" Title="Document 1" IconSource="../Images/document.png" >
                <Button Content="Document 1 Content" HorizontalAlignment="Center" VerticalAlignment="Center"/>
              </xcad:LayoutDocument>
              <xcad:LayoutDocument ContentId="document2" Title="Document 2" IconSource="../Images/document.png">
                <TextBox Text="Document 2 Content" AcceptsReturn="True"/>
              </xcad:LayoutDocument>
            </xcad:LayoutDocumentPane>
          </xcad:LayoutDocumentPaneGroup >
          <xcad:LayoutAnchorablePaneGroup DockWidth="125">
            <xcad:LayoutAnchorablePane>
              <xcad:LayoutAnchorable ContentId="alarms" Title="Alarms" IconSource="../Images/alarm-clock-blue.png" >
                <ListBox>
                  <s:String>Alarm 1</s:String>
                  <s:String>Alarm 2</s:String>
                  <s:String>Alarm 3</s:String>
                </ListBox>
              </xcad:LayoutAnchorable>
              <xcad:LayoutAnchorable ContentId="journal" Title="Journal" >
                <RichTextBox>
                  <FlowDocument>
                    <Paragraph FontSize="14" FontFamily="Segoe">
                      This is the content of the Journal Pane.
                      <LineBreak/>
                      A
                      <Bold>RichTextBox</Bold> has been added here
                    </Paragraph>
                  </FlowDocument>
                </RichTextBox>
              </xcad:LayoutAnchorable>
            </xcad:LayoutAnchorablePane>
          </xcad:LayoutAnchorablePaneGroup>
        </xcad:LayoutPanel>
    
        <xcad:LayoutRoot.LeftSide>
          <xcad:LayoutAnchorSide>
            <xcad:LayoutAnchorGroup>
              <xcad:LayoutAnchorable Title="Agenda" ContentId="agenda" IconSource="../Images/address-book-open.png">
                <TextBlock Text="Agenda Content" Margin="10" FontSize="18" FontWeight="Black" TextWrapping="Wrap"/>
              </xcad:LayoutAnchorable>
              <xcad:LayoutAnchorable Title="Contacts" ContentId="contacts" IconSource="../Images/address-book--pencil.png" >
                <TextBlock Text="Contacts Content" Margin="10" FontSize="18" FontWeight="Black" TextWrapping="Wrap"/>
              </xcad:LayoutAnchorable>
            </xcad:LayoutAnchorGroup>
          </xcad:LayoutAnchorSide>
        </xcad:LayoutRoot.LeftSide>
      </xcad:LayoutRoot>
    </xcad:DockingManager>
    Inheritance Hierarchy

    System.Object
       System.Windows.Threading.DispatcherObject
          System.Windows.DependencyObject
             Xceed.Wpf.AvalonDock.Layout.LayoutElement
                Xceed.Wpf.AvalonDock.Layout.LayoutGroupBase
                   Xceed.Wpf.AvalonDock.Layout.LayoutGroup<T>
                      Xceed.Wpf.AvalonDock.Layout.LayoutPositionableGroup<T>
                         Xceed.Wpf.AvalonDock.Layout.LayoutPanel

    Public Constructors
     NameDescription
    Public ConstructorOverloaded. Initializes a new instance of the LayoutPanel class.  
    Top
    Public Properties
     NameDescription
    Public Property

    Gets or sets if LayoutDocumentPane (or LayoutAnchorablePane) allows the dropping of duplicate contents (according to its Title and ContentId).

    When set to false, the LayoutDocumentPane (or LayoutAnchorablePane) hides the OverlayWindow.DropInto button to prevent dropping of duplicate content.
    (Inherited from Xceed.Wpf.AvalonDock.Layout.LayoutPositionableGroup<ILayoutPanelElement>)
    Public PropertyGets or sets a value indicating whether the LayoutDocuments can be repositioned in the LayoutDocumentPane via a drag of the LayoutDocumentTabItems, or if the LayoutAnchorables can be repositioned in the LayoutAnchorablePane via a drag of the LayoutAnchorableTabItems. (Inherited from Xceed.Wpf.AvalonDock.Layout.LayoutPositionableGroup<ILayoutPanelElement>)
    Public PropertyGets the child elements. (Inherited from Xceed.Wpf.AvalonDock.Layout.LayoutGroup<T>)
    Public PropertyGets the number of child elements. (Inherited from Xceed.Wpf.AvalonDock.Layout.LayoutGroup<T>)
    Public Property (Inherited from System.Windows.DependencyObject)
    Public Property (Inherited from System.Windows.Threading.DispatcherObject)
    Public PropertyGets or sets the initial height of the dock. (Inherited from Xceed.Wpf.AvalonDock.Layout.LayoutPositionableGroup<ILayoutPanelElement>)
    Public PropertyGets or sets the minimum dock height. (Inherited from Xceed.Wpf.AvalonDock.Layout.LayoutPositionableGroup<ILayoutPanelElement>)
    Public PropertyGets or sets the minimum dock width. (Inherited from Xceed.Wpf.AvalonDock.Layout.LayoutPositionableGroup<ILayoutPanelElement>)
    Public PropertyGets or sets the initial width of the dock. (Inherited from Xceed.Wpf.AvalonDock.Layout.LayoutPositionableGroup<ILayoutPanelElement>)
    Public Property

    Gets or sets the initial height of floating windows.

    (Inherited from Xceed.Wpf.AvalonDock.Layout.LayoutPositionableGroup<ILayoutPanelElement>)
    Public Property

    Gets the initial position of the left side of a floating window.

    (Inherited from Xceed.Wpf.AvalonDock.Layout.LayoutPositionableGroup<ILayoutPanelElement>)
    Public Property

    Gets the initial position of the topside of a floating window.

    (Inherited from Xceed.Wpf.AvalonDock.Layout.LayoutPositionableGroup<ILayoutPanelElement>)
    Public PropertyGets or sets the initial width of floating windows. (Inherited from Xceed.Wpf.AvalonDock.Layout.LayoutPositionableGroup<ILayoutPanelElement>)
    Public PropertyGets or sets if a pane or group will appear over all other windows when floating. (Inherited from Xceed.Wpf.AvalonDock.Layout.LayoutPositionableGroup<ILayoutPanelElement>)
    Public PropertyGets whether the element is maximized. (Inherited from Xceed.Wpf.AvalonDock.Layout.LayoutPositionableGroup<ILayoutPanelElement>)
    Public Property (Inherited from System.Windows.DependencyObject)
    Public PropertyGets whether the layout group is visible. (Inherited from Xceed.Wpf.AvalonDock.Layout.LayoutGroup<T>)
    Public PropertyGets or sets the orientation of the panes the panel contains.  
    Public PropertyGets or sets the parent container of the element. (Inherited from Xceed.Wpf.AvalonDock.Layout.LayoutElement)
    Public PropertyGets or sets the root of the element. (Inherited from Xceed.Wpf.AvalonDock.Layout.LayoutElement)
    Top
    Public Methods
     NameDescription
    Public MethodOverloaded.  (Inherited from System.Windows.DependencyObject)
    Public Method (Inherited from System.Windows.DependencyObject)
    Public MethodDetermines whether an element is visible. (Inherited from Xceed.Wpf.AvalonDock.Layout.LayoutGroup<T>)
    Public Method (Inherited from System.Windows.DependencyObject)
    Public Method (Inherited from System.Windows.DependencyObject)
    Public Method (Inherited from System.Windows.DependencyObject)
    Public MethodReturns null. (Inherited from Xceed.Wpf.AvalonDock.Layout.LayoutGroup<T>)
    Public Method (Inherited from System.Windows.DependencyObject)
    Public MethodReturns the index of the specified child layout element. (Inherited from Xceed.Wpf.AvalonDock.Layout.LayoutGroup<T>)
    Public MethodInserts the specified child layout element at the specified index. (Inherited from Xceed.Wpf.AvalonDock.Layout.LayoutGroup<T>)
    Public Method (Inherited from System.Windows.DependencyObject)
    Public MethodMoves a child from an old index to a new index within a pane (Inherited from Xceed.Wpf.AvalonDock.Layout.LayoutGroup<T>)
    Public Method (Inherited from System.Windows.DependencyObject)
    Public MethodOverridden. Reads serialized layout information using the specified XmlReader.  
    Public MethodRemoves the specified child ILayoutElement. (Inherited from Xceed.Wpf.AvalonDock.Layout.LayoutGroup<T>)
    Public MethodRemoves the child element at the specified index. (Inherited from Xceed.Wpf.AvalonDock.Layout.LayoutGroup<T>)
    Public MethodReplaces a child ILayoutElement with a new one. (Inherited from Xceed.Wpf.AvalonDock.Layout.LayoutGroup<T>)
    Public MethodReplaces the child element at the specified index with the specified element. (Inherited from Xceed.Wpf.AvalonDock.Layout.LayoutGroup<T>)
    Public Method (Inherited from System.Windows.DependencyObject)
    Public MethodOverloaded.  (Inherited from System.Windows.DependencyObject)
    Public MethodOverridden. Writes serialized layout information using the specified XmlWriter.  
    Top
    Protected Methods
     NameDescription
    Protected Method

    Called when a child has been moved.

    (Inherited from Xceed.Wpf.AvalonDock.Layout.LayoutGroup<T>)
    Protected MethodOverridden. Gets whether the panel is visible.  
    Protected Method (Inherited from Xceed.Wpf.AvalonDock.Layout.LayoutGroupBase)
    Protected MethodCalled when the ChildrenCollectionChanged event is raised. (Inherited from Xceed.Wpf.AvalonDock.Layout.LayoutGroupBase)
    Protected MethodCalled when the ChildrenTreeChanged event is raised. (Inherited from Xceed.Wpf.AvalonDock.Layout.LayoutGroupBase)
    Protected MethodCalled when DockHeight has changed. (Inherited from Xceed.Wpf.AvalonDock.Layout.LayoutPositionableGroup<ILayoutPanelElement>)
    Protected MethodCalled when DockWidth has changed. (Inherited from Xceed.Wpf.AvalonDock.Layout.LayoutPositionableGroup<ILayoutPanelElement>)
    Protected MethodCalled when IsVisible has changed. (Inherited from Xceed.Wpf.AvalonDock.Layout.LayoutGroup<T>)
    Protected MethodCalled when Parent has changed. (Inherited from Xceed.Wpf.AvalonDock.Layout.LayoutGroup<T>)
    Protected MethodProvides derived classes an opportunity to execute code before the Parent property changes. (Inherited from Xceed.Wpf.AvalonDock.Layout.LayoutElement)
    Protected Method (Inherited from System.Windows.DependencyObject)
    Protected MethodProvides derived classes an opportunity to handle changes to the Root property. (Inherited from Xceed.Wpf.AvalonDock.Layout.LayoutElement)
    Protected MethodRaises the PropertyChanged event for the specified property name. (Inherited from Xceed.Wpf.AvalonDock.Layout.LayoutElement)
    Protected MethodRaises the PropertyChanging event for the specified property name. (Inherited from Xceed.Wpf.AvalonDock.Layout.LayoutElement)
    Protected Internal Method (Inherited from System.Windows.DependencyObject)
    Top
    Public Events
     NameDescription
    Public EventRaised when the child collection changes. (Inherited from Xceed.Wpf.AvalonDock.Layout.LayoutGroupBase)
    Public EventRaised when the children tree changes. (Inherited from Xceed.Wpf.AvalonDock.Layout.LayoutGroupBase)
    Public EventRaised when a property has changed. (Inherited from Xceed.Wpf.AvalonDock.Layout.LayoutElement)
    Public EventRaised when a property is about to change. (Inherited from Xceed.Wpf.AvalonDock.Layout.LayoutElement)
    Top
    Requirements

    Target Platforms: Windows 11, Windows 10, Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

    See Also