ChromedTitleBar Class
Renders a title bar with optional left, center, and right content areas.
[TemplatePart("PART_CloseButton", typeof(Button))]
[TemplatePart("PART_FullScreenButton", typeof(Button))]
[TemplatePart("PART_MaximizeButton", typeof(Button))]
[TemplatePart("PART_MinimizeButton", typeof(Button))]
[PseudoClasses(new string[] { ":active" })]
[PseudoClasses(new string[] { ":fullscreen", ":maximized", ":minimized", ":normal" })]
public class ChromedTitleBar : ContentControl, IDataContextProvider, ILogical, IThemeVariantHost, IResourceHost, IResourceNode, IStyleHost, ISetLogicalParent, ISetInheritanceParent, IStyleable, INamed, IInputElement, IDataTemplateHost, ISetterValue
- Inheritance:
- object AvaloniaObject Animatable StyledElement Visual Layoutable Interactive InputElement Control TemplatedControl ContentControl object
- Derived:
- OverlayTitleBar
- Implements:
- IDataContextProvider ILogical IThemeVariantHost IResourceHost IResourceNode IStyleHost ISetLogicalParent ISetInheritanceParent IStyleable INamed IInputElement IDataTemplateHost ISetterValue
Remarks
This control class does not inherit the native Avalonia.Controls.Chrome.TitleBar class because Avalonia.Controls.Chrome.TitleBar contains logic that hides the title bar in certain circumstances, whereas ChromedTitleBar is designed to be useable in more scenarios.
Constructors
ChromedTitleBar()
Initializes an instance of the class.
public ChromedTitleBar()
Properties
AllowWindowDragOnPointerPressed
Indicates if the Avalonia.Input.InputElement.PointerPressed event on this control is allowed to initiate a move drag on the parent Window
.
public bool AllowWindowDragOnPointerPressed { get; set; }
Property Value
- bool:
The default value is
true
.
Remarks
This property only detects when the pointer is pressed on the title bar control and does not affect pointer pressed events
that are directly received by the parent Window
.
CanConfigureWindowClientArea
Indicates if the containing window's client area extension properties can be configured.
public bool CanConfigureWindowClientArea { get; set; }
Property Value
- bool:
The default value is
true
.
Remarks
This property determines if the Avalonia.Controls.Window.ExtendClientAreaChromeHints, Avalonia.Controls.Window.ExtendClientAreaToDecorationsHint, and Avalonia.Controls.Window.ExtendClientAreaTitleBarHeightHint properties are set. This property must be set prior to the title bar control being added to the visual tree, or its value will have no effect.
HasCaptionButtons
Indicates if at least one caption button is allowed.
IsCloseButtonAllowed
Indicates if title bar is allowed to display the close button.
public bool IsCloseButtonAllowed { get; set; }
Property Value
- bool:
true
to allow the button to be visible when appropriate; otherwisefalse
to always hide the button. The default value istrue
.
IsFullScreenButtonAllowed
Indicates if title bar is allowed to display the toggle full screen button.
public bool IsFullScreenButtonAllowed { get; set; }
Property Value
- bool:
true
to allow the button to be visible when appropriate; otherwisefalse
to always hide the button. The default value isfalse
.
IsIntegratedWithParentWindow
Indicates if the title bar is integrated with the parent Window
.
protected virtual bool IsIntegratedWithParentWindow { get; }
Property Value
Remarks
For internal use only.
IsMaximizeButtonAllowed
Indicates if title bar is allowed to display the maximize/restore button.
public bool IsMaximizeButtonAllowed { get; set; }
Property Value
- bool:
true
to allow the button to be visible when appropriate; otherwisefalse
to always hide the button. The default value istrue
.
IsMinimizeButtonAllowed
Indicates if title bar is allowed to display the minimize button.
public bool IsMinimizeButtonAllowed { get; set; }
Property Value
- bool:
true
to allow the button to be visible when appropriate; otherwisefalse
to always hide the button. The default value istrue
.
LeftContent
The content that appears on the left side of the title bar.
LeftContentTemplate
The Avalonia.Controls.Templates.IDataTemplate for the content that appears on the left side of the title bar.
public IDataTemplate? LeftContentTemplate { get; set; }
Property Value
- IDataTemplate
RightContent
The content that appears on the right side of the title bar.
RightContentTemplate
The Avalonia.Controls.Templates.IDataTemplate for the content that appears on the right side of the title bar.
public IDataTemplate? RightContentTemplate { get; set; }
Property Value
- IDataTemplate
Methods
ArrangeOverride(Size)
Positions child elements as part of a layout pass.
protected override Size ArrangeOverride(Size finalSize)
Parameter | Type | Description |
---|---|---|
finalSize | Size | The size available to the control. |
Returns
- Size:
The actual size used.
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. |
OnAttachedToVisualTree(VisualTreeAttachmentEventArgs)
Called when the control is added to a rooted visual tree.
protected override void OnAttachedToVisualTree(VisualTreeAttachmentEventArgs e)
Parameter | Type | Description |
---|---|---|
e | VisualTreeAttachmentEventArgs | The event args. |
OnClose()
Called when the close button is invoked.
protected virtual void OnClose()
OnDetachedFromVisualTree(VisualTreeAttachmentEventArgs)
Called when the control is removed from a rooted visual tree.
protected override void OnDetachedFromVisualTree(VisualTreeAttachmentEventArgs e)
Parameter | Type | Description |
---|---|---|
e | VisualTreeAttachmentEventArgs | The event args. |
OnMinimize()
Called when the minimize button is invoked.
protected virtual void OnMinimize()
OnPointerPressed(PointerPressedEventArgs)
Called before the Avalonia.Input.InputElement.PointerPressed event occurs.
protected override void OnPointerPressed(PointerPressedEventArgs e)
Parameter | Type | Description |
---|---|---|
e | PointerPressedEventArgs | The event args. |
OnToggleFullScreen()
Called when the toggle full screen button is invoked.
protected virtual void OnToggleFullScreen()
OnToggleMaximized()
Called when the maximize/restore button is invoked.
protected virtual void OnToggleMaximized()
Fields
AllowWindowDragOnPointerPressedProperty
Defines the AllowWindowDragOnPointerPressed property.
public static readonly StyledProperty<bool> AllowWindowDragOnPointerPressedProperty
CanConfigureWindowClientAreaProperty
Defines the CanConfigureWindowClientArea property.
public static readonly StyledProperty<bool> CanConfigureWindowClientAreaProperty
HasCaptionButtonsProperty
Defines the HasCaptionButtons property.
public static readonly DirectProperty<ChromedTitleBar, bool> HasCaptionButtonsProperty
IsCloseButtonAllowedProperty
Defines the IsCloseButtonAllowed property.
public static readonly StyledProperty<bool> IsCloseButtonAllowedProperty
IsFullScreenButtonAllowedProperty
Defines the IsFullScreenButtonAllowed property.
public static readonly StyledProperty<bool> IsFullScreenButtonAllowedProperty
IsMaximizeButtonAllowedProperty
Defines the IsMaximizeButtonAllowed property.
public static readonly StyledProperty<bool> IsMaximizeButtonAllowedProperty
IsMinimizeButtonAllowedProperty
Defines the IsMinimizeButtonAllowed property.
public static readonly StyledProperty<bool> IsMinimizeButtonAllowedProperty
LeftContentProperty
Defines the LeftContent property.
public static readonly StyledProperty<object?> LeftContentProperty
LeftContentTemplateProperty
Defines the LeftContentTemplate property.
public static readonly StyledProperty<IDataTemplate?> LeftContentTemplateProperty
RightContentProperty
Defines the RightContent property.
public static readonly StyledProperty<object?> RightContentProperty
RightContentTemplateProperty
Defines the RightContentTemplate property.
public static readonly StyledProperty<IDataTemplate?> RightContentTemplateProperty
Inherited Members
- ContentControl.ContentProperty
- ContentControl.ContentTemplateProperty
- ContentControl.HorizontalContentAlignmentProperty
- ContentControl.VerticalContentAlignmentProperty
- ContentControl.OnPropertyChanged(AvaloniaPropertyChangedEventArgs)
- ContentControl.RegisterContentPresenter(ContentPresenter)
- ContentControl.Content
- ContentControl.ContentTemplate
- ContentControl.Presenter
- ContentControl.HorizontalContentAlignment
- ContentControl.VerticalContentAlignment
- 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.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.OnKeyDown(KeyEventArgs)
- InputElement.OnTextInput(TextInputEventArgs)
- InputElement.OnPointerEntered(PointerEventArgs)
- InputElement.OnPointerExited(PointerEventArgs)
- InputElement.OnPointerMoved(PointerEventArgs)
- 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.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.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)
Extension Methods
- AvaloniaObjectExtensions.BindToProperty(AvaloniaObject, AvaloniaProperty, AvaloniaObject, AvaloniaProperty, BindingMode)
- AvaloniaObjectExtensions.BindToProperty(AvaloniaObject, AvaloniaProperty, object, AvaloniaProperty, BindingMode, IValueConverter, object)
- VisualExtensions.GetFirstFocusableVisualDescendant(Visual)
- VisualExtensions.GetFirstTabStopVisualDescendant(Visual)
- VisualExtensions.InvalidateMeasureForAllVisualsInSameTemplate(Visual)
- VisualExtensions.InvalidateMeasureForVisualAncestorPath<PathEndType>(Visual, bool)
- VisualExtensions.SizeToClient(Visual, PixelSize)
- VisualExtensions.SizeToScreen(Visual, Size)
- VisualExtensions.VectorToClient(Visual, PixelVector)
- VisualExtensions.VectorToScreen(Visual, Vector)
- ObjectExtensions.TryConvertToDouble(object, out double)
- ObjectExtensions.TryConvertToDouble(object, IFormatProvider, out double)