diff --git a/src/Ursa/Controls/Badge/Badge.cs b/src/Ursa/Controls/Badge/Badge.cs index dde129c..fe3f26e 100644 --- a/src/Ursa/Controls/Badge/Badge.cs +++ b/src/Ursa/Controls/Badge/Badge.cs @@ -70,11 +70,14 @@ public class Badge : HeaderedContentControl protected override void OnApplyTemplate(TemplateAppliedEventArgs e) { + _badgeContainer?.RemoveHandler(SizeChangedEvent, OnBadgeSizeChanged); base.OnApplyTemplate(e); _badgeContainer = e.NameScope.Find(PART_BadgeContainer); - _badgeContainer?.AddHandler(SizeChangedEvent, (_, _) => UpdateBadgePosition()); + _badgeContainer?.AddHandler(SizeChangedEvent, OnBadgeSizeChanged); } + private void OnBadgeSizeChanged(object? sender, SizeChangedEventArgs e) => UpdateBadgePosition(); + private void UpdateBadgePosition() { var vertical = CornerPosition is CornerPosition.BottomLeft or CornerPosition.BottomRight ? 1 : -1;