From 702a683ac9977de0540975517aeb2dfa34e44f9f Mon Sep 17 00:00:00 2001 From: qinware Date: Sat, 9 Aug 2025 14:51:15 +0800 Subject: [PATCH] Optimize Badge for dark mode --- src/AtomUI.Controls/Badge/BadgeToken.cs | 2 +- src/AtomUI.Controls/Badge/CountBadge.cs | 4 ++-- src/AtomUI.Controls/Badge/RibbonBadgeAdorner.cs | 5 +++-- .../Badge/Themes/CountBadgeAdornerTheme.axaml | 5 +++-- 4 files changed, 9 insertions(+), 7 deletions(-) diff --git a/src/AtomUI.Controls/Badge/BadgeToken.cs b/src/AtomUI.Controls/Badge/BadgeToken.cs index 44a630432..8f530a6aa 100644 --- a/src/AtomUI.Controls/Badge/BadgeToken.cs +++ b/src/AtomUI.Controls/Badge/BadgeToken.cs @@ -85,7 +85,7 @@ internal class BadgeToken : AbstractControlDesignToken // 设置内部 token BadgeFontHeight = SharedToken.FontHeight; BadgeShadowSize = lineWidth; - BadgeTextColor = SharedToken.ColorBgContainer; + BadgeTextColor = SharedToken.ColorTextLightSolid; BadgeColor = SharedToken.ColorError; BadgeColorHover = SharedToken.ColorErrorHover; BadgeShadowColor = SharedToken.ColorBorderBg; diff --git a/src/AtomUI.Controls/Badge/CountBadge.cs b/src/AtomUI.Controls/Badge/CountBadge.cs index 2018d6d22..7cd35384a 100644 --- a/src/AtomUI.Controls/Badge/CountBadge.cs +++ b/src/AtomUI.Controls/Badge/CountBadge.cs @@ -51,8 +51,8 @@ public class CountBadge : Control, public static readonly StyledProperty BadgeIsVisibleProperty = AvaloniaProperty.Register(nameof(BadgeIsVisible), true); - public static readonly StyledProperty IsMotionEnabledProperty - = MotionAwareControlProperty.IsMotionEnabledProperty.AddOwner(); + public static readonly StyledProperty IsMotionEnabledProperty = + MotionAwareControlProperty.IsMotionEnabledProperty.AddOwner(); public string? BadgeColor { diff --git a/src/AtomUI.Controls/Badge/RibbonBadgeAdorner.cs b/src/AtomUI.Controls/Badge/RibbonBadgeAdorner.cs index 7e371cbfb..fd69901a2 100644 --- a/src/AtomUI.Controls/Badge/RibbonBadgeAdorner.cs +++ b/src/AtomUI.Controls/Badge/RibbonBadgeAdorner.cs @@ -115,6 +115,7 @@ internal class RibbonBadgeAdorner : Control private TextBlock? _labelText; private Geometry? _cornerGeometry; private readonly BorderRenderHelper _borderRenderHelper; + private bool _styleInitialized; static RibbonBadgeAdorner() { @@ -131,15 +132,15 @@ internal class RibbonBadgeAdorner : Control protected override void OnAttachedToLogicalTree(LogicalTreeAttachmentEventArgs e) { base.OnAttachedToLogicalTree(e); - if (Styles.Count == 0) + if (!_styleInitialized) { BuildStyles(); + _styleInitialized = true; } } private void BuildStyles() { - // TODO 需要优化 var commonStyle = new Style(selector => selector.OfType()); commonStyle.Add(RibbonColorProperty, SharedTokenKey.ColorPrimary); commonStyle.Add(CornerRadiusProperty, SharedTokenKey.BorderRadiusSM); diff --git a/src/AtomUI.Controls/Badge/Themes/CountBadgeAdornerTheme.axaml b/src/AtomUI.Controls/Badge/Themes/CountBadgeAdornerTheme.axaml index 691bc6cc9..be8572779 100644 --- a/src/AtomUI.Controls/Badge/Themes/CountBadgeAdornerTheme.axaml +++ b/src/AtomUI.Controls/Badge/Themes/CountBadgeAdornerTheme.axaml @@ -17,12 +17,14 @@ Name="{x:Static atom:CountBadgeAdornerThemeConstants.BadgeTextPart}" VerticalAlignment="Center" HorizontalAlignment="Center" - Text="{TemplateBinding CountText}" /> + Text="{TemplateBinding CountText}" + Foreground="{TemplateBinding Foreground}"/> + @@ -42,7 +44,6 @@ Value="{DynamicResource {x:Static atom:BadgeTokenKey.CountBadgeCornerRadius}}" />