TabbedMdiHost Class
Represents a container that hosts docking windows in a tabbed MDI (multiple-document interface) mode.
public class TabbedMdiHost : MdiHostBase, IDataContextProvider, ILogical, IThemeVariantHost, IResourceHost, IResourceNode, IStyleHost, ISetLogicalParent, ISetInheritanceParent, IStyleable, INamed, IInputElement, IDataTemplateHost, ISetterValue, IDockTarget
- Inheritance:
- object AvaloniaObject Animatable StyledElement Visual Layoutable Interactive InputElement Control TemplatedControl MdiHostBase object
- Implements:
- IDataContextProvider ILogical IThemeVariantHost IResourceHost IResourceNode IStyleHost ISetLogicalParent ISetInheritanceParent IStyleable INamed IInputElement IDataTemplateHost ISetterValue IDockTarget
Constructors
TabbedMdiHost()
Initializes an instance of the class.
public TabbedMdiHost()
Properties
CanDocumentTabsDrag
The global setting for whether document tabs may be dragged to another location.
public bool CanDocumentTabsDrag { get; set; }
Property Value
- bool:
The default value is
true
.
Remarks
This setting only affects documents whose CanDragTab property is set to null
.
Any other setting on the document instance overrides this global setting.
CanDocumentsAttach
The global setting for whether documents may be attached to another document, creating a tabbed grouping.
public bool CanDocumentsAttach { get; set; }
Property Value
- bool:
The default value is
true
.
Remarks
This setting only affects documents whose CanAttach property is set to null
.
Any other setting on the document instance overrides this global setting.
CanDocumentsCloseOnMiddleClick
A value indicating whether documents can be closed by clicking the tab with the middle mouse button.
public bool CanDocumentsCloseOnMiddleClick { get; set; }
Property Value
- bool:
true
if documents can be closed by clicking the tab with the middle mouse button; otherwise,false
. The default value istrue
.
CanDocumentsDock
The global setting for whether documents can be docked to a new container.
public bool CanDocumentsDock { get; set; }
Property Value
- bool:
The default value is
true
.
Remarks
This setting only affects documents whose CanDock property is set to null
.
Any other setting on the document instance overrides this global setting.
Child
The Avalonia.Controls.Control child of the host, which can be a SplitContainer or TabbedMdiContainer.
[Content]
public Control? Child { get; set; }
Property Value
- Control:
The default value is
null
.
ContainersHaveNewTabButtons
Indicates whether containers have new tab buttons.
public bool ContainersHaveNewTabButtons { get; set; }
Property Value
- bool:
The default value is
false
.
EmptyContent
The content to display when there are no documents visible in the host.
EmptyContentTemplate
The Avalonia.Controls.Templates.IDataTemplate to display when there are no documents visible in the host.
public IDataTemplate? EmptyContentTemplate { get; set; }
Property Value
- IDataTemplate
HasTabCloseButtons
Indicates whether close buttons should appear on document tabs.
HasTabIcons
Indicates whether document tabs display an embedded icons when one is available.
HasTabPinButtons
Indicates whether pin buttons should appear on document tabs (normal layout kind).
HasTabPromoteButtons
Indicates whether promote buttons should appear on document tabs (preview layout kind).
MaxTabExtent
The maximum extent of a tab.
public double MaxTabExtent { get; set; }
Property Value
- double:
The default value is
430.0
.
Remarks
Set the MinTabExtent to the same as the MaxTabExtent to produce fixed-size tabs.
The ControlTheme
set by default in TabItemContainerTheme has a HeaderTemplate
that contains a TextBlock
whose Text
property is bound to the TabTextResolved property.
Note that the TextBlock
via its TextTrimming
property will apply character ellipses to the end of any tab text that exceeds the
TextBlock
width allowed by MaxTabExtent.
File name display scenarios generally wish to place ellipses in the middle of the trimmed text instead of at the end,
however this UI platform doesn't support text trimming features in the middle of text.
To support this feature, we have a TitleConverter value converter in place in the TextBlock.Text
property binding that
receives a text string and will replace the middle part of the string with ellipses if the string is too long character-wise.
Ensure that the MaxTabExtent is wide enough to handle the maximum string size returned by the title value converter,
or else a scenario could occur where the value converter places ellipses in the middle of the text
and the system via TextBlock.TextTrimming
places ellipses at the end of the text as well.
Note that increasing the MaxTabExtent property will not allow more tab text characters to show unless you also update the properties of the title value converter to allow a longer text result.
MinTabExtent
The minimum extent of a tab.
public double MinTabExtent { get; set; }
Property Value
- double:
The default value is
30.0
.
Remarks
Set the MinTabExtent to the same as the MaxTabExtent to produce fixed-size tabs. This property will be ignored when a TabOverflowBehavior that involves shrinking is active and the tabs enter an overflow scenario.
SingleTabLayoutBehavior
The global setting for the behavior used when a single docking window is in the MDI area.
public SingleTabLayoutBehavior SingleTabLayoutBehavior { get; set; }
Property Value
- SingleTabLayoutBehavior:
The behavior used when a single docking window is in the MDI area. The default value is Show.
TabControlTheme
The Avalonia.Styling.ControlTheme to use for the contained tab controls in a TabbedMdiContainer.
public ControlTheme? TabControlTheme { get; set; }
Property Value
- ControlTheme
TabItemContainerTheme
The Avalonia.Styling.ControlTheme to use for rendering the tab item containers in a TabbedMdiContainer.
public ControlTheme? TabItemContainerTheme { get; set; }
Property Value
- ControlTheme
TabOverflowBehavior
The overflow behavior of the document tabs.
public TabOverflowBehavior TabOverflowBehavior { get; set; }
Property Value
- TabOverflowBehavior:
The default value is
Menu
.
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
Top
.
Methods
Cascade()
Cascades the open documents.
public void Cascade()
CreateNew()
Creates a new instance of this class.
GetDocuments()
Returns the list of docking windows within the MDI.
OnDockHostChanged(DockHost?, DockHost?)
Occurs when the value of the DockHost property has changed.
protected override void OnDockHostChanged(DockHost? oldValue, DockHost? newValue)
Parameter | Type | Description |
---|---|---|
oldValue | DockHost | The old value. |
newValue | DockHost | The new value. |
TileHorizontally()
Tiles the open documents horizontally.
public void TileHorizontally()
TileHorizontally(int)
Tiles the open documents horizontally.
public void TileHorizontally(int maxColumnCount)
Parameter | Type | Description |
---|---|---|
maxColumnCount | int | The maximum column count |
TileVertically()
Tiles the open documents vertically.
public void TileVertically()
TileVertically(int)
Tiles the open documents horizontally.
public void TileVertically(int maxRowCount)
Parameter | Type | Description |
---|---|---|
maxRowCount | int | The maximum row count |
Fields
CanDocumentTabsDragProperty
Defines the CanDocumentTabsDrag property.
public static readonly StyledProperty<bool> CanDocumentTabsDragProperty
CanDocumentsAttachProperty
Defines the CanDocumentsAttach property.
public static readonly StyledProperty<bool> CanDocumentsAttachProperty
CanDocumentsCloseOnMiddleClickProperty
Defines the CanDocumentsCloseOnMiddleClick property.
public static readonly StyledProperty<bool> CanDocumentsCloseOnMiddleClickProperty
CanDocumentsDockProperty
Defines the CanDocumentsDock property.
public static readonly StyledProperty<bool> CanDocumentsDockProperty
ChildProperty
Defines the Child property.
public static readonly StyledProperty<Control?> ChildProperty
ContainersHaveNewTabButtonsProperty
Defines the ContainersHaveNewTabButtons property.
public static readonly StyledProperty<bool> ContainersHaveNewTabButtonsProperty
EmptyContentProperty
Defines the EmptyContent property.
public static readonly StyledProperty<object?> EmptyContentProperty
EmptyContentTemplateProperty
Defines the EmptyContentTemplate property.
public static readonly StyledProperty<IDataTemplate?> EmptyContentTemplateProperty
HasTabCloseButtonsProperty
Defines the HasTabCloseButtons property.
public static readonly StyledProperty<bool> HasTabCloseButtonsProperty
HasTabIconsProperty
Defines the HasTabIcons property.
public static readonly StyledProperty<bool> HasTabIconsProperty
HasTabPinButtonsProperty
Defines the HasTabPinButtons property.
public static readonly StyledProperty<bool> HasTabPinButtonsProperty
HasTabPromoteButtonsProperty
Defines the HasTabPromoteButtons property.
public static readonly StyledProperty<bool> HasTabPromoteButtonsProperty
MaxTabExtentProperty
Defines the MaxTabExtent property.
public static readonly StyledProperty<double> MaxTabExtentProperty
MinTabExtentProperty
Defines the MinTabExtent property.
public static readonly StyledProperty<double> MinTabExtentProperty
SingleTabLayoutBehaviorProperty
Defines the SingleTabLayoutBehavior property.
public static readonly StyledProperty<SingleTabLayoutBehavior> SingleTabLayoutBehaviorProperty
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
- MdiHostBase.IsEmptyProperty
- MdiHostBase.PrimaryWindowProperty
- MdiHostBase.PrimaryWindowChangedEvent
- MdiHostBase.OnApplyTemplate(TemplateAppliedEventArgs)
- MdiHostBase.OnPrimaryWindowChanged(DockingWindow, DockingWindow)
- MdiHostBase.DockHost
- MdiHostBase.DockSite
- MdiHostBase.IsEmpty
- MdiHostBase.PrimaryWindow
- MdiHostBase.PrimaryWindowChanged
- 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.ToString()
- object.Equals(object, object)
- object.ReferenceEquals(object, object)