From 24dda1ebafdde55095b30353ebc43bc4ec4d6960 Mon Sep 17 00:00:00 2001 From: Dong Bin Date: Wed, 27 Aug 2025 23:37:23 +0800 Subject: [PATCH] feat: simplify closable tag. --- src/Ursa.Themes.Semi/Controls/TagInput.axaml | 7 ----- src/Ursa/Controls/ComboBox/MultiComboBox.cs | 2 +- .../ComboBox/MultiComboBoxSelectedItemList.cs | 13 ++++++--- src/Ursa/Controls/TagInput/ClosableTag.cs | 27 ------------------- 4 files changed, 11 insertions(+), 38 deletions(-) diff --git a/src/Ursa.Themes.Semi/Controls/TagInput.axaml b/src/Ursa.Themes.Semi/Controls/TagInput.axaml index 88e0136..1e865f6 100644 --- a/src/Ursa.Themes.Semi/Controls/TagInput.axaml +++ b/src/Ursa.Themes.Semi/Controls/TagInput.axaml @@ -135,14 +135,7 @@ Command="{TemplateBinding Command}" CommandParameter="{TemplateBinding}" Content="{StaticResource ClosableTagCloseIconGlyph}" /> - ReferenceEquals(a, data)); if (item is not null) diff --git a/src/Ursa/Controls/ComboBox/MultiComboBoxSelectedItemList.cs b/src/Ursa/Controls/ComboBox/MultiComboBoxSelectedItemList.cs index 1925918..bcaac44 100644 --- a/src/Ursa/Controls/ComboBox/MultiComboBoxSelectedItemList.cs +++ b/src/Ursa/Controls/ComboBox/MultiComboBoxSelectedItemList.cs @@ -1,6 +1,7 @@ using System.Windows.Input; using Avalonia; using Avalonia.Controls; +using Avalonia.Controls.Shapes; using Avalonia.Layout; using Avalonia.Media; @@ -35,12 +36,18 @@ public class MultiComboBoxSelectedItemList: ItemsControl tag.Command = RemoveCommand; if (item is Layoutable visualContent) { - tag.VisualContent = new VisualBrush + var visualBrush= new VisualBrush { Visual = visualContent, }; - tag.VisualContentWidth = visualContent.Bounds.Width; - tag.VisualContentHeight = visualContent.Bounds.Height; + var rectangle = new Rectangle() + { + Fill = visualBrush, + Width = visualContent.Bounds.Width, + Height = visualContent.Bounds.Height, + }; + tag.Content = rectangle; + tag.DataContext = item; } } } diff --git a/src/Ursa/Controls/TagInput/ClosableTag.cs b/src/Ursa/Controls/TagInput/ClosableTag.cs index 9d972e8..94ad032 100644 --- a/src/Ursa/Controls/TagInput/ClosableTag.cs +++ b/src/Ursa/Controls/TagInput/ClosableTag.cs @@ -13,37 +13,10 @@ public class ClosableTag : ContentControl public static readonly StyledProperty CommandProperty = AvaloniaProperty.Register( nameof(Command)); - - public static readonly StyledProperty VisualContentProperty = AvaloniaProperty.Register( - nameof(VisualContent)); - - public static readonly StyledProperty VisualContentWidthProperty = AvaloniaProperty.Register( - nameof(VisualContentWidth)); - - public static readonly StyledProperty VisualContentHeightProperty = AvaloniaProperty.Register( - nameof(VisualContentHeight)); public ICommand? Command { get => GetValue(CommandProperty); set => SetValue(CommandProperty, value); } - - public VisualBrush? VisualContent - { - get => GetValue(VisualContentProperty); - set => SetValue(VisualContentProperty, value); - } - - public double? VisualContentWidth - { - get => GetValue(VisualContentWidthProperty); - set => SetValue(VisualContentWidthProperty, value); - } - - public double? VisualContentHeight - { - get => GetValue(VisualContentHeightProperty); - set => SetValue(VisualContentHeightProperty, value); - } } \ No newline at end of file