From e4ff70ad14234e104b01655e6c654155d7318fa0 Mon Sep 17 00:00:00 2001
From: Zhang Dian <54255897+zdpcdt@users.noreply.github.com>
Date: Fri, 4 Aug 2023 22:55:09 +0800
Subject: [PATCH] feat: Badge inherits HeaderedContentControl.
---
demo/Ursa.Demo/Pages/BadgeDemo.axaml | 98 +++++++++++------------
src/Ursa.Themes.Semi/Controls/Badge.axaml | 8 +-
src/Ursa/Controls/Badge.cs | 25 ++----
3 files changed, 58 insertions(+), 73 deletions(-)
diff --git a/demo/Ursa.Demo/Pages/BadgeDemo.axaml b/demo/Ursa.Demo/Pages/BadgeDemo.axaml
index ce4e062..5d2f3d0 100644
--- a/demo/Ursa.Demo/Pages/BadgeDemo.axaml
+++ b/demo/Ursa.Demo/Pages/BadgeDemo.axaml
@@ -27,152 +27,152 @@
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -180,37 +180,37 @@
@@ -219,37 +219,37 @@
diff --git a/src/Ursa.Themes.Semi/Controls/Badge.axaml b/src/Ursa.Themes.Semi/Controls/Badge.axaml
index 2dc94dd..9dd320d 100644
--- a/src/Ursa.Themes.Semi/Controls/Badge.axaml
+++ b/src/Ursa.Themes.Semi/Controls/Badge.axaml
@@ -45,12 +45,12 @@
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
CornerRadius="{TemplateBinding CornerRadius}"
- IsVisible="{Binding !!BadgeContent, RelativeSource={RelativeSource TemplatedParent}}"
+ IsVisible="{Binding !!Header, RelativeSource={RelativeSource TemplatedParent}}"
RenderTransformOrigin=".5,.5"
Theme="{TemplateBinding BadgeTheme}"
UseLayoutRounding="False">
-
+
@@ -93,7 +93,7 @@
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
CornerRadius="{TemplateBinding CornerRadius}"
- IsVisible="{Binding !!BadgeContent, RelativeSource={RelativeSource TemplatedParent}}"
+ IsVisible="{Binding !!Header, RelativeSource={RelativeSource TemplatedParent}}"
RenderTransformOrigin=".5,.5" />
diff --git a/src/Ursa/Controls/Badge.cs b/src/Ursa/Controls/Badge.cs
index 9956352..3e24381 100644
--- a/src/Ursa/Controls/Badge.cs
+++ b/src/Ursa/Controls/Badge.cs
@@ -1,7 +1,6 @@
using Avalonia;
using Avalonia.Controls;
using Avalonia.Controls.Metadata;
-using Avalonia.Controls.Presenters;
using Avalonia.Controls.Primitives;
using Avalonia.Interactivity;
using Avalonia.Media;
@@ -10,18 +9,14 @@ using Ursa.Common;
namespace Ursa.Controls;
-[TemplatePart(PART_ContentPresenter, typeof(ContentPresenter))]
[TemplatePart(PART_BadgeContainer, typeof(Border))]
-[TemplatePart(PART_BadgeContentPresenter, typeof(ContentPresenter))]
-public class Badge: ContentControl
+public class Badge: HeaderedContentControl
{
public const string PART_ContentPresenter = "PART_ContentPresenter";
public const string PART_BadgeContainer = "PART_BadgeContainer";
- public const string PART_BadgeContentPresenter = "PART_BadgeContentPresenter";
-
- private ContentPresenter? _content;
+ public const string PART_HeaderPresenter = "PART_HeaderPresenter";
+
private Border? _badgeContainer;
- private ContentPresenter? _badgeContent;
public static readonly StyledProperty BadgeThemeProperty = AvaloniaProperty.Register(
nameof(BadgeTheme));
@@ -39,14 +34,6 @@ public class Badge: ContentControl
set => SetValue(DotProperty, value);
}
- public static readonly StyledProperty