From c2dcc88e22145eaf02e878abf8e8ceb8f7022ce8 Mon Sep 17 00:00:00 2001 From: Pilzinsel64 Date: Sun, 30 Nov 2025 09:34:46 +0100 Subject: [PATCH] wip --- .../HeaderMenuItem.axaml | 6 +-- .../Controls/HeaderMenuItem.axaml.cs | 42 +++++++++++++++++++ .../Dialogs/HeaderMenuItem.axaml.cs | 24 ----------- Pilz.UI.AvaloniaUI/Pilz.UI.AvaloniaUI.csproj | 4 ++ 4 files changed, 49 insertions(+), 27 deletions(-) rename Pilz.UI.AvaloniaUI/{Dialogs => Controls}/HeaderMenuItem.axaml (71%) create mode 100644 Pilz.UI.AvaloniaUI/Controls/HeaderMenuItem.axaml.cs delete mode 100644 Pilz.UI.AvaloniaUI/Dialogs/HeaderMenuItem.axaml.cs 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 +