diff --git a/src/AvaloniaInside.Shell/NavigationBar.cs b/src/AvaloniaInside.Shell/NavigationBar.cs index 35a201d..970239a 100644 --- a/src/AvaloniaInside.Shell/NavigationBar.cs +++ b/src/AvaloniaInside.Shell/NavigationBar.cs @@ -5,6 +5,7 @@ using Avalonia.Controls.Metadata; using Avalonia.Controls.Primitives; using Avalonia.Interactivity; +using Avalonia.Markup.Xaml.Templates; namespace AvaloniaInside.Shell; @@ -327,6 +328,33 @@ public static void SetHeaderIcon(AvaloniaObject element, object parameter) => #endregion + + #region HeaderTemplate + + public static readonly AttachedProperty HeaderTemplateProperty = + AvaloniaProperty.RegisterAttached("HeaderTemplate"); + + public static DataTemplate GetHeaderTemplate(AvaloniaObject element) => + element.GetValue(HeaderTemplateProperty); + + public static void SetHeaderTemplate(AvaloniaObject element, DataTemplate parameter) => + element.SetValue(HeaderTemplateProperty, parameter); + + #endregion + + #region HeaderIconTemplate + + public static readonly AttachedProperty HeaderIconTemplateProperty = + AvaloniaProperty.RegisterAttached("HeaderIconTemplate"); + + public static DataTemplate GetHeaderIconTemplate(AvaloniaObject element) => + element.GetValue(HeaderIconTemplateProperty); + + public static void SetHeaderIconTemplate(AvaloniaObject element, DataTemplate parameter) => + element.SetValue(HeaderIconTemplateProperty, parameter); + + #endregion + #region Visible public static readonly AttachedProperty VisibleProperty = @@ -507,6 +535,7 @@ protected virtual void UpdateHeader(object? view, ContentControl itemPresenter) { itemPresenter.DataContext = element.DataContext ?? element; itemPresenter[!ContentControl.ContentProperty] = element[!HeaderProperty]; + itemPresenter[!ContentControl.ContentTemplateProperty] = element[!HeaderTemplateProperty]; return; } diff --git a/src/AvaloniaInside.Shell/Theme/Default/TabPage.axaml b/src/AvaloniaInside.Shell/Theme/Default/TabPage.axaml index 0b49c81..e1b29b3 100644 --- a/src/AvaloniaInside.Shell/Theme/Default/TabPage.axaml +++ b/src/AvaloniaInside.Shell/Theme/Default/TabPage.axaml @@ -44,14 +44,16 @@ - - + + HorizontalAlignment="Center">