In This Article

DockingWindowContainerBase Class

Represents the base class for a control that can contain multiple docking windows, with one selected.

[TemplatePart(Name = "PART_TabControl", Type = typeof(AdvancedTabControl))]
[PseudoClasses(new string[] { ":active" })]
[PseudoClasses(new string[] { ":left", ":top", ":right", ":bottom" })]
[PseudoClasses(new string[] { ":docked", ":document", ":autohide" })]
public abstract class DockingWindowContainerBase : TemplatedControl, IDataContextProvider, ILogical, IThemeVariantHost, IResourceHost, IResourceNode, IStyleHost, ISetLogicalParent, ISetInheritanceParent, IStyleable, INamed, IInputElement, IDataTemplateHost, ISetterValue, IOrientedElement
Inheritance:
object AvaloniaObject Animatable StyledElement Visual Layoutable Interactive InputElement Control TemplatedControl object
Derived:
TabbedMdiContainer ToolWindowContainer
Implements:
IDataContextProvider ILogical IThemeVariantHost IResourceHost IResourceNode IStyleHost ISetLogicalParent ISetInheritanceParent IStyleable INamed IInputElement IDataTemplateHost ISetterValue IOrientedElement

Constructors

DockingWindowContainerBase()

Initializes an instance of the class.

protected DockingWindowContainerBase()

Properties

CanTabsCloseOnMiddleClick

Indicates whether tabs can close when a middle-click is performed over them.

public bool CanTabsCloseOnMiddleClick { get; set; }

Property Value

bool:

The default value is true.

Remarks

The CanClose property must also be set to true for this behavior to work.

DockHost

The DockHost that contains this control.

public DockHost? DockHost { get; }

Property Value

DockHost

DockSite

The DockSite that is managing this control.

public DockSite? DockSite { get; }

Property Value

DockSite

HasTabIcons

Indicates whether tabs display an embedded icon when one is available.

public bool HasTabIcons { get; set; }

Property Value

bool:

The default value is false.

IsActive

Indicates whether the container is currently active, due to focus being within it.

public bool IsActive { get; }

Property Value

bool:

The default value is false.

IsTabLayoutAnimationEnabled

Indicates whether animation effects should be applied during tab layout, such as when tabs are added or removed.

public bool IsTabLayoutAnimationEnabled { get; set; }

Property Value

bool:

The default value is false.

IsTabLayoutAnimationEnabledResolved

Indicates whether animation effects are applied during tab layout, such as when tabs are added or removed.

public bool IsTabLayoutAnimationEnabledResolved { get; }

Property Value

bool:

The default value is false.

IsTabStripVisible

Indicates whether the tabstrip is visible.

public bool IsTabStripVisible { get; protected set; }

Property Value

bool

MaxTabExtent

The maximum extent of a tab.

public double MaxTabExtent { get; set; }

Property Value

double:

The default value is 260.0.

MinTabExtent

The minimum extent of a tab.

public double MinTabExtent { get; set; }

Property Value

double:

The default value is 30.0.

SelectedWindow

The DockingWindow that is currently selected in the container.

public DockingWindow? SelectedWindow { get; set; }

Property Value

DockingWindow

SingleTabLayoutBehavior

The behavior used when a single DockingWindow is in the container.

public SingleTabLayoutBehavior SingleTabLayoutBehavior { get; set; }

Property Value

SingleTabLayoutBehavior

State

The DockingWindowState that specifies the current state of the container.

public DockingWindowState State { get; }

Property Value

DockingWindowState

TabControl

The tab control in the container's user interface.

protected AdvancedTabControl? TabControl { get; }

Property Value

AdvancedTabControl

TabControlTheme

The Avalonia.Styling.ControlTheme to use for the contained TabControl.

public ControlTheme? TabControlTheme { get; set; }

Property Value

ControlTheme

TabItemContainerTheme

The Avalonia.Styling.ControlTheme to use for rendering the tab item containers.

public ControlTheme? TabItemContainerTheme { get; set; }

Property Value

ControlTheme

TabOverflowBehavior

The TabOverflowBehavior that indicates the logic to use in tab overflow scenarios.

public TabOverflowBehavior TabOverflowBehavior { get; set; }

Property Value

TabOverflowBehavior:

The default value is Shrink.

TabStripPlacement

A dock side indicating the side upon which the tabs are located.

public Dock TabStripPlacement { get; set; }

Property Value

Dock:

The default value is Avalonia.Controls.Dock.Bottom.

WindowsCore

Gets the collection of child DockingWindow objects.

protected ObservableCollection<DockingWindow> WindowsCore { get; }

Property Value

ObservableCollection<DockingWindow>

Methods

OnApplyTemplate(TemplateAppliedEventArgs)

Called when the control's template is applied. In simple terms, this means the method is called just before the control is displayed.

protected override void OnApplyTemplate(TemplateAppliedEventArgs e)
Parameter Type Description
e TemplateAppliedEventArgs

The event args.

OnDockSiteChanged(DockSite?, DockSite?)

Called when the DockSite property is changed.

protected virtual void OnDockSiteChanged(DockSite? oldDockSite, DockSite? newDockSite)
Parameter Type Description
oldDockSite DockSite

The old value.

newDockSite DockSite

The new value.

OnSelectedWindowChanged(DockingWindow?, DockingWindow?)

Called when the SelectedWindow property is changed.

protected virtual void OnSelectedWindowChanged(DockingWindow? oldSelectedWindow, DockingWindow? newSelectedWindow)
Parameter Type Description
oldSelectedWindow DockingWindow

The old selected window.

newSelectedWindow DockingWindow

The new selected window.

OnTabControlMenuOpening(AdvancedTabControlMenuEventArgs)

Called when a menu on the tab control is opening.

protected virtual void OnTabControlMenuOpening(AdvancedTabControlMenuEventArgs e)
Parameter Type Description
e AdvancedTabControlMenuEventArgs

The AdvancedTabControlMenuEventArgs that contains the event data.

OnWindowsChanged(NotifyCollectionChangedEventArgs)

Called when the windows collection is changed.

protected virtual void OnWindowsChanged(NotifyCollectionChangedEventArgs e)
Parameter Type Description
e NotifyCollectionChangedEventArgs

A NotifyCollectionChangedEventArgs that contains the event data.

ToString()

Returns the string representation of this object.

public override string ToString()

Returns

string:

The string representation of this object.

UpdateCommands()

Updates the enabled states of the commands.

protected virtual void UpdateCommands()

UpdateDockingWindowStates()

Updates the DockingWindowState associated with all child docking windows.

protected abstract void UpdateDockingWindowStates()

UpdateIsTabStripVisible()

Updates the IsTabStripVisible property.

protected virtual void UpdateIsTabStripVisible()

UpdateTitleBarButtonVisibility()

Updates the title bar button visibility.

protected virtual void UpdateTitleBarButtonVisibility()

ValidateChildType(DockingWindow)

Validates that the specified child DockingWindow type is valid for this container.

protected virtual void ValidateChildType(DockingWindow window)
Parameter Type Description
window DockingWindow

The DockingWindow to examine.

Fields

CanTabsCloseOnMiddleClickProperty

Defines the CanTabsCloseOnMiddleClick property.

public static readonly StyledProperty<bool> CanTabsCloseOnMiddleClickProperty

HasTabIconsProperty

Defines the HasTabIcons property.

public static readonly StyledProperty<bool> HasTabIconsProperty

IsActiveProperty

Defines the IsActive property.

public static readonly StyledProperty<bool> IsActiveProperty

IsTabLayoutAnimationEnabledProperty

Defines the IsTabLayoutAnimationEnabled property.

public static readonly StyledProperty<bool> IsTabLayoutAnimationEnabledProperty

IsTabLayoutAnimationEnabledResolvedProperty

public static readonly StyledProperty<bool> IsTabLayoutAnimationEnabledResolvedProperty

IsTabStripVisibleProperty

Defines the IsTabStripVisible property.

public static readonly StyledProperty<bool> IsTabStripVisibleProperty

MaxTabExtentProperty

Defines the MaxTabExtent property.

public static readonly StyledProperty<double> MaxTabExtentProperty

MinTabExtentProperty

Defines the MinTabExtent property.

public static readonly StyledProperty<double> MinTabExtentProperty

SelectedWindowProperty

Defines the SelectedWindow property.

public static readonly StyledProperty<DockingWindow?> SelectedWindowProperty

SingleTabLayoutBehaviorProperty

Defines the SingleTabLayoutBehavior property.

public static readonly StyledProperty<SingleTabLayoutBehavior> SingleTabLayoutBehaviorProperty

StateProperty

Defines the State property.

public static readonly DirectProperty<DockingWindowContainerBase, DockingWindowState> StateProperty

TabControlThemeProperty

Defines the TabControlTheme property.

public static readonly StyledProperty<ControlTheme?> TabControlThemeProperty

TabItemContainerThemeProperty

Defines the TabItemContainerTheme property.

public static readonly StyledProperty<ControlTheme?> TabItemContainerThemeProperty

TabOverflowBehaviorProperty

Defines the TabOverflowBehavior property.

public static readonly StyledProperty<TabOverflowBehavior> TabOverflowBehaviorProperty

TabStripPlacementProperty

Defines the TabStripPlacement property.

public static readonly StyledProperty<Dock> TabStripPlacementProperty

Inherited Members

  • TemplatedControl.BackgroundProperty
  • TemplatedControl.BackgroundSizingProperty
  • TemplatedControl.BorderBrushProperty
  • TemplatedControl.BorderThicknessProperty
  • TemplatedControl.CornerRadiusProperty
  • TemplatedControl.FontFamilyProperty
  • TemplatedControl.FontFeaturesProperty
  • TemplatedControl.FontSizeProperty
  • TemplatedControl.FontStyleProperty
  • TemplatedControl.FontWeightProperty
  • TemplatedControl.FontStretchProperty
  • TemplatedControl.ForegroundProperty
  • TemplatedControl.PaddingProperty
  • TemplatedControl.TemplateProperty
  • TemplatedControl.IsTemplateFocusTargetProperty
  • TemplatedControl.TemplateAppliedEvent
  • TemplatedControl.GetIsTemplateFocusTarget(Control)
  • TemplatedControl.SetIsTemplateFocusTarget(Control, bool)
  • TemplatedControl.ApplyTemplate()
  • TemplatedControl.GetTemplateFocusTarget()
  • TemplatedControl.OnAttachedToLogicalTree(LogicalTreeAttachmentEventArgs)
  • TemplatedControl.OnDetachedFromLogicalTree(LogicalTreeAttachmentEventArgs)
  • TemplatedControl.OnTemplateChanged(AvaloniaPropertyChangedEventArgs)
  • TemplatedControl.Background
  • TemplatedControl.BackgroundSizing
  • TemplatedControl.BorderBrush
  • TemplatedControl.BorderThickness
  • TemplatedControl.CornerRadius
  • TemplatedControl.FontFamily
  • TemplatedControl.FontFeatures
  • TemplatedControl.FontSize
  • TemplatedControl.FontStyle
  • TemplatedControl.FontWeight
  • TemplatedControl.FontStretch
  • TemplatedControl.Foreground
  • TemplatedControl.Padding
  • TemplatedControl.Template
  • TemplatedControl.TemplateApplied
  • Control.FocusAdornerProperty
  • Control.TagProperty
  • Control.ContextMenuProperty
  • Control.ContextFlyoutProperty
  • Control.RequestBringIntoViewEvent
  • Control.ContextRequestedEvent
  • Control.LoadedEvent
  • Control.UnloadedEvent
  • Control.SizeChangedEvent
  • Control.OnLoaded(RoutedEventArgs)
  • Control.OnUnloaded(RoutedEventArgs)
  • Control.OnSizeChanged(SizeChangedEventArgs)
  • Control.OnAttachedToVisualTreeCore(VisualTreeAttachmentEventArgs)
  • Control.OnDetachedFromVisualTreeCore(VisualTreeAttachmentEventArgs)
  • Control.OnGotFocus(GotFocusEventArgs)
  • Control.OnLostFocus(RoutedEventArgs)
  • Control.OnCreateAutomationPeer()
  • Control.OnPointerReleased(PointerReleasedEventArgs)
  • Control.OnKeyUp(KeyEventArgs)
  • Control.OnPropertyChanged(AvaloniaPropertyChangedEventArgs)
  • Control.FocusAdorner
  • Control.DataTemplates
  • Control.ContextMenu
  • Control.ContextFlyout
  • Control.IsLoaded
  • Control.Tag
  • Control.ContextRequested
  • Control.Loaded
  • Control.Unloaded
  • Control.SizeChanged
  • InputElement.FocusableProperty
  • InputElement.IsEnabledProperty
  • InputElement.IsEffectivelyEnabledProperty
  • InputElement.CursorProperty
  • InputElement.IsKeyboardFocusWithinProperty
  • InputElement.IsFocusedProperty
  • InputElement.IsHitTestVisibleProperty
  • InputElement.IsPointerOverProperty
  • InputElement.IsTabStopProperty
  • InputElement.GotFocusEvent
  • InputElement.LostFocusEvent
  • InputElement.KeyDownEvent
  • InputElement.KeyUpEvent
  • InputElement.TabIndexProperty
  • InputElement.TextInputEvent
  • InputElement.TextInputMethodClientRequestedEvent
  • InputElement.PointerEnteredEvent
  • InputElement.PointerExitedEvent
  • InputElement.PointerMovedEvent
  • InputElement.PointerPressedEvent
  • InputElement.PointerReleasedEvent
  • InputElement.PointerCaptureLostEvent
  • InputElement.PointerWheelChangedEvent
  • InputElement.TappedEvent
  • InputElement.HoldingEvent
  • InputElement.DoubleTappedEvent
  • InputElement.Focus(NavigationMethod, KeyModifiers)
  • InputElement.OnAccessKey(RoutedEventArgs)
  • InputElement.OnKeyDown(KeyEventArgs)
  • InputElement.OnTextInput(TextInputEventArgs)
  • InputElement.OnPointerEntered(PointerEventArgs)
  • InputElement.OnPointerExited(PointerEventArgs)
  • InputElement.OnPointerMoved(PointerEventArgs)
  • InputElement.OnPointerPressed(PointerPressedEventArgs)
  • InputElement.OnPointerCaptureLost(PointerCaptureLostEventArgs)
  • InputElement.OnPointerWheelChanged(PointerWheelEventArgs)
  • InputElement.UpdateIsEffectivelyEnabled()
  • InputElement.Focusable
  • InputElement.IsEnabled
  • InputElement.Cursor
  • InputElement.IsKeyboardFocusWithin
  • InputElement.IsFocused
  • InputElement.IsHitTestVisible
  • InputElement.IsPointerOver
  • InputElement.IsTabStop
  • InputElement.IsEffectivelyEnabled
  • InputElement.TabIndex
  • InputElement.KeyBindings
  • InputElement.IsEnabledCore
  • InputElement.GestureRecognizers
  • InputElement.GotFocus
  • InputElement.LostFocus
  • InputElement.KeyDown
  • InputElement.KeyUp
  • InputElement.TextInput
  • InputElement.TextInputMethodClientRequested
  • InputElement.PointerEntered
  • InputElement.PointerExited
  • InputElement.PointerMoved
  • InputElement.PointerPressed
  • InputElement.PointerReleased
  • InputElement.PointerCaptureLost
  • InputElement.PointerWheelChanged
  • InputElement.Tapped
  • InputElement.Holding
  • InputElement.DoubleTapped
  • Interactive.AddHandler(RoutedEvent, Delegate, RoutingStrategies, bool)
  • Interactive.AddHandler<TEventArgs>(RoutedEvent<TEventArgs>, EventHandler<TEventArgs>, RoutingStrategies, bool)
  • Interactive.RemoveHandler(RoutedEvent, Delegate)
  • Interactive.RemoveHandler<TEventArgs>(RoutedEvent<TEventArgs>, EventHandler<TEventArgs>)
  • Interactive.RaiseEvent(RoutedEventArgs)
  • Interactive.BuildEventRoute(RoutedEvent)
  • Layoutable.DesiredSizeProperty
  • Layoutable.WidthProperty
  • Layoutable.HeightProperty
  • Layoutable.MinWidthProperty
  • Layoutable.MaxWidthProperty
  • Layoutable.MinHeightProperty
  • Layoutable.MaxHeightProperty
  • Layoutable.MarginProperty
  • Layoutable.HorizontalAlignmentProperty
  • Layoutable.VerticalAlignmentProperty
  • Layoutable.UseLayoutRoundingProperty
  • Layoutable.UpdateLayout()
  • Layoutable.Measure(Size)
  • Layoutable.Arrange(Rect)
  • Layoutable.InvalidateMeasure()
  • Layoutable.InvalidateArrange()
  • Layoutable.AffectsMeasure<T>(params AvaloniaProperty[])
  • Layoutable.AffectsArrange<T>(params AvaloniaProperty[])
  • Layoutable.MeasureCore(Size)
  • Layoutable.MeasureOverride(Size)
  • Layoutable.ArrangeCore(Rect)
  • Layoutable.ArrangeOverride(Size)
  • Layoutable.OnMeasureInvalidated()
  • Layoutable.OnVisualParentChanged(Visual, Visual)
  • Layoutable.Width
  • Layoutable.Height
  • Layoutable.MinWidth
  • Layoutable.MaxWidth
  • Layoutable.MinHeight
  • Layoutable.MaxHeight
  • Layoutable.Margin
  • Layoutable.HorizontalAlignment
  • Layoutable.VerticalAlignment
  • Layoutable.DesiredSize
  • Layoutable.IsMeasureValid
  • Layoutable.IsArrangeValid
  • Layoutable.UseLayoutRounding
  • Layoutable.EffectiveViewportChanged
  • Layoutable.LayoutUpdated
  • Visual.BoundsProperty
  • Visual.ClipToBoundsProperty
  • Visual.ClipProperty
  • Visual.IsVisibleProperty
  • Visual.OpacityProperty
  • Visual.OpacityMaskProperty
  • Visual.EffectProperty
  • Visual.HasMirrorTransformProperty
  • Visual.RenderTransformProperty
  • Visual.RenderTransformOriginProperty
  • Visual.FlowDirectionProperty
  • Visual.VisualParentProperty
  • Visual.ZIndexProperty
  • Visual.GetFlowDirection(Visual)
  • Visual.SetFlowDirection(Visual, FlowDirection)
  • Visual.InvalidateVisual()
  • Visual.Render(DrawingContext)
  • Visual.AffectsRender<T>(params AvaloniaProperty[])
  • Visual.LogicalChildrenCollectionChanged(object, NotifyCollectionChangedEventArgs)
  • Visual.OnAttachedToVisualTree(VisualTreeAttachmentEventArgs)
  • Visual.OnDetachedFromVisualTree(VisualTreeAttachmentEventArgs)
  • Visual.InvalidateMirrorTransform()
  • Visual.Bounds
  • Visual.ClipToBounds
  • Visual.Clip
  • Visual.IsEffectivelyVisible
  • Visual.IsVisible
  • Visual.Opacity
  • Visual.OpacityMask
  • Visual.Effect
  • Visual.HasMirrorTransform
  • Visual.RenderTransform
  • Visual.RenderTransformOrigin
  • Visual.FlowDirection
  • Visual.ZIndex
  • Visual.VisualChildren
  • Visual.VisualRoot
  • Visual.BypassFlowDirectionPolicies
  • Visual.AttachedToVisualTree
  • Visual.DetachedFromVisualTree
  • StyledElement.DataContextProperty
  • StyledElement.NameProperty
  • StyledElement.ParentProperty
  • StyledElement.TemplatedParentProperty
  • StyledElement.ThemeProperty
  • StyledElement.BeginInit()
  • StyledElement.EndInit()
  • StyledElement.ApplyStyling()
  • StyledElement.InitializeIfNeeded()
  • StyledElement.TryGetResource(object, ThemeVariant, out object)
  • StyledElement.OnDataContextChanged(EventArgs)
  • StyledElement.OnDataContextBeginUpdate()
  • StyledElement.OnDataContextEndUpdate()
  • StyledElement.OnInitialized()
  • StyledElement.Name
  • StyledElement.Classes
  • StyledElement.DataContext
  • StyledElement.IsInitialized
  • StyledElement.Styles
  • StyledElement.StyleKey
  • StyledElement.Resources
  • StyledElement.TemplatedParent
  • StyledElement.Theme
  • StyledElement.LogicalChildren
  • StyledElement.PseudoClasses
  • StyledElement.StyleKeyOverride
  • StyledElement.Parent
  • StyledElement.ActualThemeVariant
  • StyledElement.AttachedToLogicalTree
  • StyledElement.DetachedFromLogicalTree
  • StyledElement.DataContextChanged
  • StyledElement.Initialized
  • StyledElement.ResourcesChanged
  • StyledElement.ActualThemeVariantChanged
  • Animatable.TransitionsProperty
  • Animatable.OnPropertyChangedCore(AvaloniaPropertyChangedEventArgs)
  • Animatable.Transitions
  • AvaloniaObject.CheckAccess()
  • AvaloniaObject.VerifyAccess()
  • AvaloniaObject.ClearValue(AvaloniaProperty)
  • AvaloniaObject.ClearValue<T>(AvaloniaProperty<T>)
  • AvaloniaObject.ClearValue<T>(StyledProperty<T>)
  • AvaloniaObject.ClearValue<T>(DirectPropertyBase<T>)
  • AvaloniaObject.Equals(object)
  • AvaloniaObject.GetHashCode()
  • AvaloniaObject.GetValue(AvaloniaProperty)
  • AvaloniaObject.GetValue<T>(StyledProperty<T>)
  • AvaloniaObject.GetValue<T>(DirectPropertyBase<T>)
  • AvaloniaObject.GetBaseValue<T>(StyledProperty<T>)
  • AvaloniaObject.IsAnimating(AvaloniaProperty)
  • AvaloniaObject.IsSet(AvaloniaProperty)
  • AvaloniaObject.SetValue(AvaloniaProperty, object, BindingPriority)
  • AvaloniaObject.SetValue<T>(StyledProperty<T>, T, BindingPriority)
  • AvaloniaObject.SetValue<T>(DirectPropertyBase<T>, T)
  • AvaloniaObject.SetCurrentValue(AvaloniaProperty, object)
  • AvaloniaObject.SetCurrentValue<T>(StyledProperty<T>, T)
  • AvaloniaObject.Bind(AvaloniaProperty, IBinding)
  • AvaloniaObject.Bind(AvaloniaProperty, IObservable<object>, BindingPriority)
  • AvaloniaObject.Bind<T>(StyledProperty<T>, IObservable<object>, BindingPriority)
  • AvaloniaObject.Bind<T>(StyledProperty<T>, IObservable<T>, BindingPriority)
  • AvaloniaObject.Bind<T>(StyledProperty<T>, IObservable<BindingValue<T>>, BindingPriority)
  • AvaloniaObject.Bind<T>(DirectPropertyBase<T>, IObservable<object>)
  • AvaloniaObject.Bind<T>(DirectPropertyBase<T>, IObservable<T>)
  • AvaloniaObject.Bind<T>(DirectPropertyBase<T>, IObservable<BindingValue<T>>)
  • AvaloniaObject.CoerceValue(AvaloniaProperty)
  • AvaloniaObject.UpdateDataValidation(AvaloniaProperty, BindingValueType, Exception)
  • AvaloniaObject.RaisePropertyChanged<T>(DirectPropertyBase<T>, T, T)
  • AvaloniaObject.SetAndRaise<T>(DirectPropertyBase<T>, ref T, T)
  • AvaloniaObject.InheritanceParent
  • AvaloniaObject.this[AvaloniaProperty]
  • AvaloniaObject.this[IndexerDescriptor]
  • AvaloniaObject.PropertyChanged
  • object.GetType()
  • object.MemberwiseClone()
  • object.Equals(object, object)
  • object.ReferenceEquals(object, object)

Extension Methods