

'Declaration<ContentPropertyAttribute("RootPanel")> <TypeDescriptionProviderAttribute(MS.Internal.ComponentModel.DependencyObjectProvider)> <NameScopePropertyAttribute("NameScope", System.Windows.NameScope)> <SerializableAttribute()> Public Class LayoutRoot Inherits LayoutElement Implements ILayoutContainer, ILayoutElement, ILayoutRoot
'UsageDim instance As LayoutRoot
[ContentProperty("RootPanel")] [TypeDescriptionProvider(MS.Internal.ComponentModel.DependencyObjectProvider)] [NameScopeProperty("NameScope", System.Windows.NameScope)] [Serializable()] public class LayoutRoot : LayoutElement, ILayoutContainer, ILayoutElement, ILayoutRoot
The Layout property of DockingManager is set to an instance of this class.
The RootPanel property of the LayoutRoot class is set to an instance of the LayoutPanel class.
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" instances (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 LayoutRoot class provides four "Side" properties (e.g., LeftSide), which are used in conjunction with the LayoutAnchorSide and the LayoutAnchorGroup classes to set up autohide LayoutAnchorable elements along the border of the containing DockingManager. These elements are initially collapsed to the side to which they are anchored, displaying only a tab, and the "pin" glyph is pointing to the left. If the pin glyph of an autohide anchorable is clicked so that the pin is pointing down, the anchorable is no longer remains visible. Only LayoutAnchorable elements can be autohidden.
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/LayoutDocumentPane, LayoutAnchorablePaneGroup/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.
<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>
System.Object
System.Windows.Threading.DispatcherObject
System.Windows.DependencyObject
Xceed.Wpf.AvalonDock.Layout.LayoutElement
Xceed.Wpf.AvalonDock.Layout.LayoutRoot
| Name | Description | |
|---|---|---|
![]() | LayoutRoot Constructor | Initializes a new instance of the LayoutRoot class. |
| Name | Description | |
|---|---|---|
![]() | ActiveContent | Gets the active LayoutContent-derived element. |
![]() | BottomSide | Gets or sets the bottom side of the layout root. |
![]() | Children | Gets the child elements of the layout root. |
![]() | ChildrenCount | Gets the number of child elements. |
![]() | DependencyObjectType | (Inherited from System.Windows.DependencyObject) |
![]() | Dispatcher | (Inherited from System.Windows.Threading.DispatcherObject) |
![]() | FloatingWindows | Gets the floating windows that are in the layout. |
![]() | Hidden | Gets the hidden anchorables in the layout. |
![]() | IsSealed | (Inherited from System.Windows.DependencyObject) |
![]() | LastFocusedDocument | Gets the last focused content. |
![]() | LeftSide | Gets or sets the left side of the layout root. |
![]() | Manager | Gets the DockingManager that arranges the panes it contains and handles autohide anchorables and floating windows. |
![]() | Parent | Gets or sets the parent container of the element. (Inherited from Xceed.Wpf.AvalonDock.Layout.LayoutElement) |
![]() | RightSide | Gets or sets the right side of the layout root. |
![]() | Root | Gets or sets the root of the element. (Inherited from Xceed.Wpf.AvalonDock.Layout.LayoutElement) |
![]() | RootPanel | Gets or sets the root layout panel. |
![]() | TopSide | Gets or sets the top side of the layout root. |
| Name | Description | |
|---|---|---|
![]() | ClearValue | Overloaded. (Inherited from System.Windows.DependencyObject) |
![]() | CoerceValue | (Inherited from System.Windows.DependencyObject) |
![]() | CollectGarbage | Removes any empty containers not directly referenced by other layout items. |
![]() | Equals | (Inherited from System.Windows.DependencyObject) |
![]() | GetHashCode | (Inherited from System.Windows.DependencyObject) |
![]() | GetLocalValueEnumerator | (Inherited from System.Windows.DependencyObject) |
![]() | GetSchema | |
![]() | GetValue | (Inherited from System.Windows.DependencyObject) |
![]() | InvalidateProperty | (Inherited from System.Windows.DependencyObject) |
![]() | ReadLocalValue | (Inherited from System.Windows.DependencyObject) |
![]() | ReadXml | |
![]() | RemoveChild | Removes the specified child element. |
![]() | ReplaceChild | Replaces on child element with another. |
![]() | SetCurrentValue | (Inherited from System.Windows.DependencyObject) |
![]() | SetValue | Overloaded. (Inherited from System.Windows.DependencyObject) |
![]() | WriteXml |
| Name | Description | |
|---|---|---|
![]() | OnParentChanged | Provides derived classes an opportunity to handle changes to the Parent property. (Inherited from Xceed.Wpf.AvalonDock.Layout.LayoutElement) |
![]() | OnParentChanging | Provides derived classes an opportunity to execute code before the Parent property changes. (Inherited from Xceed.Wpf.AvalonDock.Layout.LayoutElement) |
![]() | OnPropertyChanged | (Inherited from System.Windows.DependencyObject) |
![]() | OnRootChanged | Provides derived classes an opportunity to handle changes to the Root property. (Inherited from Xceed.Wpf.AvalonDock.Layout.LayoutElement) |
![]() | RaisePropertyChanged | Raises the PropertyChanged event for the specified property name. (Inherited from Xceed.Wpf.AvalonDock.Layout.LayoutElement) |
![]() | RaisePropertyChanging | Raises the PropertyChanging event for the specified property name. (Inherited from Xceed.Wpf.AvalonDock.Layout.LayoutElement) |
![]() | ShouldSerializeProperty | (Inherited from System.Windows.DependencyObject) |
| Name | Description | |
|---|---|---|
![]() | ContainsChildOfType | Overloaded. Indicates whether a child of a specified type is contained in the ILayoutContainer. |
![]() | Descendents | Returns the descendents of the specified ILayoutElement. |
![]() | FindLogicalAncestor<T> | Finds the logical ancenster |
![]() | FindLogicalAncestorsAndSelf | |
![]() | FindLogicalChildren<T> | Find the logical children. |
![]() | FindParent<T> | Finds the parent of the specified type of the specified ILayoutElement. |
![]() | FindVisualAncestor<T> | Finds the visual ancestor. |
![]() | FindVisualChildren<T> | Finds the visual children. |
![]() | FindVisualTreeRoot | Finds the visual tree root. |
![]() | GetRoot | Returns the root of the specified ILayoutElement. |
![]() | GetSide | Returns the anchor side of the specified ILayoutElement. |
![]() | IsOfType<T,S> | Returns whether the specified container is of either of the specified types. |
![]() | ShowDialog | Overloaded. |
| Name | Description | |
|---|---|---|
![]() | ElementAdded | Raised when an element is added to the layout. |
![]() | ElementRemoved | Raised when an element is removed from the layout. |
![]() | PropertyChanged | Raised when a property has changed. (Inherited from Xceed.Wpf.AvalonDock.Layout.LayoutElement) |
![]() | PropertyChanging | Raised when a property is about to change. (Inherited from Xceed.Wpf.AvalonDock.Layout.LayoutElement) |
![]() | Updated | Raised when the layout is updated. |
.NET: net5.0, net5.0-windows, net6.0, net6.0-macos, net6.0-windows, net7.0, net7.0-macos, net7.0-windows, net8.0, net8.0-browser, net8.0-macos, net8.0-windows, net9.0, net9.0-browser, net9.0-macos, net9.0-windows, net10.0, net10.0-browser, net10.0-macos, net10.0-windows.
.NET Framework: net40, net403, net45, net451, net452, net46, net461, net462, net463, net47, net471, net472, net48, net481.