From 543ea01e6233317bdd1d811888c82383f77c637c Mon Sep 17 00:00:00 2001 From: TheXamlGuy Date: Sat, 6 Jul 2024 12:11:39 +0100 Subject: [PATCH] Added Action content to SettingsExpander --- .../NavigationView/NavigationViewItem.cs | 8 - .../NavigationViewItemSeparator.cs | 8 + .../SettingsExpander/SettingsExpander.axaml | 152 +++++++++++++++++- .../SettingsExpander/SettingsExpander.cs | 30 +++- .../SettingsExpander/SettingsExpanderItem.cs | 29 ++++ 5 files changed, 211 insertions(+), 16 deletions(-) create mode 100644 Toolkit.UI.Controls.Avalonia/NavigationView/NavigationViewItemSeparator.cs create mode 100644 Toolkit.UI.Controls.Avalonia/SettingsExpander/SettingsExpanderItem.cs diff --git a/Toolkit.UI.Controls.Avalonia/NavigationView/NavigationViewItem.cs b/Toolkit.UI.Controls.Avalonia/NavigationView/NavigationViewItem.cs index c6fd2da..cd86847 100644 --- a/Toolkit.UI.Controls.Avalonia/NavigationView/NavigationViewItem.cs +++ b/Toolkit.UI.Controls.Avalonia/NavigationView/NavigationViewItem.cs @@ -6,11 +6,3 @@ public class NavigationViewItem : protected override Type StyleKeyOverride => typeof(FluentAvalonia.UI.Controls.NavigationViewItem); } - - -public class NavigationViewItemSeparator : - FluentAvalonia.UI.Controls.NavigationViewItemSeparator -{ - protected override Type StyleKeyOverride => - typeof(FluentAvalonia.UI.Controls.NavigationViewItemSeparator); -} diff --git a/Toolkit.UI.Controls.Avalonia/NavigationView/NavigationViewItemSeparator.cs b/Toolkit.UI.Controls.Avalonia/NavigationView/NavigationViewItemSeparator.cs new file mode 100644 index 0000000..27a5f54 --- /dev/null +++ b/Toolkit.UI.Controls.Avalonia/NavigationView/NavigationViewItemSeparator.cs @@ -0,0 +1,8 @@ +namespace Toolkit.UI.Controls.Avalonia; + +public class NavigationViewItemSeparator : + FluentAvalonia.UI.Controls.NavigationViewItemSeparator +{ + protected override Type StyleKeyOverride => + typeof(FluentAvalonia.UI.Controls.NavigationViewItemSeparator); +} diff --git a/Toolkit.UI.Controls.Avalonia/SettingsExpander/SettingsExpander.axaml b/Toolkit.UI.Controls.Avalonia/SettingsExpander/SettingsExpander.axaml index cd23161..519818b 100644 --- a/Toolkit.UI.Controls.Avalonia/SettingsExpander/SettingsExpander.axaml +++ b/Toolkit.UI.Controls.Avalonia/SettingsExpander/SettingsExpander.axaml @@ -22,7 +22,6 @@ Mode=TwoWay}" IsEnabled="{TemplateBinding IsEnabled}" Theme="{StaticResource SettingsExpanderToggleButtonStyle}" /> - - + @@ -68,10 +67,11 @@ Mode=TwoWay}" Theme="{StaticResource SettingsExpanderExpanderStyle}"> - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Toolkit.UI.Controls.Avalonia/SettingsExpander/SettingsExpander.cs b/Toolkit.UI.Controls.Avalonia/SettingsExpander/SettingsExpander.cs index 9117ce2..a9ebb62 100644 --- a/Toolkit.UI.Controls.Avalonia/SettingsExpander/SettingsExpander.cs +++ b/Toolkit.UI.Controls.Avalonia/SettingsExpander/SettingsExpander.cs @@ -1,7 +1,29 @@ -namespace Toolkit.UI.Controls.Avalonia; +using Avalonia; +using Avalonia.Controls.Templates; -public class SettingsExpander : FluentAvalonia.UI.Controls.SettingsExpander +namespace Toolkit.UI.Controls.Avalonia; + +public class SettingsExpander : + FluentAvalonia.UI.Controls.SettingsExpander { + public static readonly StyledProperty ActionProperty = + AvaloniaProperty.Register(nameof(Action)); + + public static readonly StyledProperty ActionTemplateProperty = + AvaloniaProperty.Register(nameof(ActionTemplate)); + + public object Action + { + get => GetValue(ActionProperty); + set => SetValue(ActionProperty, value); + } + + public IDataTemplate ActionTemplate + { + get => GetValue(ActionTemplateProperty); + set => SetValue(ActionTemplateProperty, value); + } + protected override Type StyleKeyOverride => - typeof(FluentAvalonia.UI.Controls.SettingsExpander); -} \ No newline at end of file + typeof(SettingsExpander); +} diff --git a/Toolkit.UI.Controls.Avalonia/SettingsExpander/SettingsExpanderItem.cs b/Toolkit.UI.Controls.Avalonia/SettingsExpander/SettingsExpanderItem.cs new file mode 100644 index 0000000..7a91ecf --- /dev/null +++ b/Toolkit.UI.Controls.Avalonia/SettingsExpander/SettingsExpanderItem.cs @@ -0,0 +1,29 @@ +using Avalonia; +using Avalonia.Controls.Templates; + +namespace Toolkit.UI.Controls.Avalonia; + +public class SettingsExpanderItem : + FluentAvalonia.UI.Controls.SettingsExpanderItem +{ + public static readonly StyledProperty ActionProperty = + AvaloniaProperty.Register(nameof(Action)); + + public static readonly StyledProperty ActionTemplateProperty = + AvaloniaProperty.Register(nameof(ActionTemplate)); + + public object Action + { + get => GetValue(ActionProperty); + set => SetValue(ActionProperty, value); + } + + public IDataTemplate ActionTemplate + { + get => GetValue(ActionTemplateProperty); + set => SetValue(ActionTemplateProperty, value); + } + + protected override Type StyleKeyOverride => + typeof(SettingsExpanderItem); +} \ No newline at end of file