diff --git a/Pilz.UI.AvaloniaUI/Dialogs/HeaderMenuItem.axaml b/Pilz.UI.AvaloniaUI/Controls/HeaderMenuItem.axaml similarity index 71% rename from Pilz.UI.AvaloniaUI/Dialogs/HeaderMenuItem.axaml rename to Pilz.UI.AvaloniaUI/Controls/HeaderMenuItem.axaml index 9c7edac..c6dca22 100644 --- a/Pilz.UI.AvaloniaUI/Dialogs/HeaderMenuItem.axaml +++ b/Pilz.UI.AvaloniaUI/Controls/HeaderMenuItem.axaml @@ -3,13 +3,13 @@ xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450" - x:Class="Pilz.UI.AvaloniaUI.Dialogs.HeaderMenuItem" + x:Class="Pilz.UI.AvaloniaUI.Controls.HeaderMenuItem" x:Name="RootItem"> - - + + diff --git a/Pilz.UI.AvaloniaUI/Controls/HeaderMenuItem.axaml.cs b/Pilz.UI.AvaloniaUI/Controls/HeaderMenuItem.axaml.cs new file mode 100644 index 0000000..243d9d9 --- /dev/null +++ b/Pilz.UI.AvaloniaUI/Controls/HeaderMenuItem.axaml.cs @@ -0,0 +1,42 @@ +using Avalonia; +using Avalonia.Controls; + +namespace Pilz.UI.AvaloniaUI.Controls; + +public partial class HeaderMenuItem : MenuItem +{ + public static readonly StyledProperty HeaderTextProperty = AvaloniaProperty.Register(nameof(HeaderText)); + public static readonly StyledProperty HeaderIconProperty = AvaloniaProperty.Register(nameof(HeaderIcon)); + + public string? HeaderText + { + get => GetValue(HeaderTextProperty); + set + { + SetValue(HeaderTextProperty, value); + TextBlockHeaderText.Text = value; + } + } + + public object? HeaderIcon + { + get => GetValue(HeaderIconProperty); + set + { + SetValue(HeaderIconProperty, value); + ContentControlHeaderIcon.Content = value; + ContentControlHeaderIcon.IsVisible = value != null; + } + } + + public new object? Icon + { + get => HeaderIcon; + set => HeaderIcon = value; + } + + public HeaderMenuItem() + { + InitializeComponent(); + } +} \ No newline at end of file diff --git a/Pilz.UI.AvaloniaUI/Dialogs/HeaderMenuItem.axaml.cs b/Pilz.UI.AvaloniaUI/Dialogs/HeaderMenuItem.axaml.cs deleted file mode 100644 index d5dd12a..0000000 --- a/Pilz.UI.AvaloniaUI/Dialogs/HeaderMenuItem.axaml.cs +++ /dev/null @@ -1,24 +0,0 @@ -using Avalonia; -using Avalonia.Controls; - -namespace Pilz.UI.AvaloniaUI.Dialogs; - -public partial class HeaderMenuItem : MenuItem -{ - public static readonly StyledProperty HeaderTextProperty = AvaloniaProperty.Register(nameof(HeaderText)); - - public string? HeaderText - { - get => GetValue(HeaderTextProperty); - set - { - SetValue(HeaderTextProperty, value); - TextBlockHeader.Text = value; - } - } - - public HeaderMenuItem() - { - InitializeComponent(); - } -} \ No newline at end of file diff --git a/Pilz.UI.AvaloniaUI/Pilz.UI.AvaloniaUI.csproj b/Pilz.UI.AvaloniaUI/Pilz.UI.AvaloniaUI.csproj index bd8d63e..c7f7eeb 100644 --- a/Pilz.UI.AvaloniaUI/Pilz.UI.AvaloniaUI.csproj +++ b/Pilz.UI.AvaloniaUI/Pilz.UI.AvaloniaUI.csproj @@ -32,6 +32,10 @@ ImageDropDownButton.axaml Code + + HeaderMenuItem.axaml + Code +