@@ -259,8 +259,6 @@ public RadialGauge()
259
259
kaea . Handled = true ;
260
260
}
261
261
} ) ;
262
-
263
- Unloaded += RadialGauge_Unloaded ;
264
262
}
265
263
266
264
private void ThemeListener_ThemeChanged ( ThemeListener sender )
@@ -270,6 +268,8 @@ private void ThemeListener_ThemeChanged(ThemeListener sender)
270
268
271
269
private void RadialGauge_Unloaded ( object sender , RoutedEventArgs e )
272
270
{
271
+ // TODO: We should just use a WeakEventListener for ThemeChanged here, but ours currently doesn't support it.
272
+ // See proposal for general helper here: https://github.com/CommunityToolkit/dotnet/issues/404
273
273
ThemeListener . ThemeChanged -= ThemeListener_ThemeChanged ;
274
274
PointerReleased -= RadialGauge_PointerReleased ;
275
275
Unloaded -= RadialGauge_Unloaded ;
@@ -480,6 +480,10 @@ protected override AutomationPeer OnCreateAutomationPeer()
480
480
/// </summary>
481
481
protected override void OnApplyTemplate ( )
482
482
{
483
+ PointerReleased -= RadialGauge_PointerReleased ;
484
+ ThemeListener . ThemeChanged -= ThemeListener_ThemeChanged ;
485
+ Unloaded -= RadialGauge_Unloaded ;
486
+
483
487
// Remember local brushes.
484
488
_needleBrush = ReadLocalValue ( NeedleBrushProperty ) as SolidColorBrush ;
485
489
_trailBrush = ReadLocalValue ( TrailBrushProperty ) as SolidColorBrush ;
@@ -490,6 +494,7 @@ protected override void OnApplyTemplate()
490
494
491
495
PointerReleased += RadialGauge_PointerReleased ;
492
496
ThemeListener . ThemeChanged += ThemeListener_ThemeChanged ;
497
+ Unloaded += RadialGauge_Unloaded ;
493
498
494
499
// Apply color scheme.
495
500
OnColorsChanged ( ) ;
0 commit comments