diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Controls/CodeRenderer.cs b/Microsoft.Toolkit.Uwp.SampleApp/Controls/CodeRenderer.cs
index a2c9f0f698e..4dbc50f256f 100644
--- a/Microsoft.Toolkit.Uwp.SampleApp/Controls/CodeRenderer.cs
+++ b/Microsoft.Toolkit.Uwp.SampleApp/Controls/CodeRenderer.cs
@@ -183,7 +183,7 @@ private void Current_ThemeChanged(object sender, Models.ThemeChangedArgs e)
/// Element Theme
private ElementTheme SystemTheme()
{
- return SampleController.Current.SystemTheme() == ApplicationTheme.Dark ? ElementTheme.Dark : ElementTheme.Light;
+ return SampleController.Current.GetSystemTheme() == ApplicationTheme.Dark ? ElementTheme.Dark : ElementTheme.Light;
}
}
}
\ No newline at end of file
diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Pages/SampleController.xaml.cs b/Microsoft.Toolkit.Uwp.SampleApp/Pages/SampleController.xaml.cs
index d34b54f1e22..0c3a4d1a8cf 100644
--- a/Microsoft.Toolkit.Uwp.SampleApp/Pages/SampleController.xaml.cs
+++ b/Microsoft.Toolkit.Uwp.SampleApp/Pages/SampleController.xaml.cs
@@ -31,6 +31,8 @@ public sealed partial class SampleController : Page, INotifyPropertyChanged
{
public static SampleController Current { get; private set; }
+ public ThemeListener ThemeListener => _themeListener;
+
public SampleController()
{
_themeListener = new ThemeListener();
@@ -71,7 +73,7 @@ public ElementTheme GetCurrentTheme()
/// Gets the current System Theme.
///
/// System Theme
- public ApplicationTheme SystemTheme()
+ public ApplicationTheme GetSystemTheme()
{
return _themeListener.CurrentTheme;
}
diff --git a/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/ThemeListener/ThemeListenerPage.xaml.cs b/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/ThemeListener/ThemeListenerPage.xaml.cs
index 46d29987f48..1be04689b00 100644
--- a/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/ThemeListener/ThemeListenerPage.xaml.cs
+++ b/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/ThemeListener/ThemeListenerPage.xaml.cs
@@ -5,6 +5,7 @@
using Microsoft.Toolkit.Uwp.UI.Helpers;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
+using Windows.UI.Xaml.Navigation;
namespace Microsoft.Toolkit.Uwp.SampleApp.SamplePages
{
@@ -16,9 +17,7 @@ public sealed partial class ThemeListenerPage : Page
public ThemeListenerPage()
{
this.InitializeComponent();
- Listener = new ThemeListener();
this.Loaded += ThemeListenerPage_Loaded;
- Listener.ThemeChanged += Listener_ThemeChanged;
SampleController.Current.ThemeChanged += Current_ThemeChanged;
}
@@ -32,17 +31,16 @@ private void ThemeListenerPage_Loaded(object sender, RoutedEventArgs e)
UpdateThemeState();
}
- private void Listener_ThemeChanged(ThemeListener sender)
- {
- UpdateThemeState();
- }
-
private void UpdateThemeState()
{
- SystemTheme.Text = Listener.CurrentThemeName;
+ SystemTheme.Text = SampleController.Current.ThemeListener.CurrentThemeName;
CurrentTheme.Text = SampleController.Current.GetCurrentTheme().ToString();
}
- public ThemeListener Listener { get; }
+ protected async override void OnNavigatedFrom(NavigationEventArgs e)
+ {
+ Loaded -= ThemeListenerPage_Loaded;
+ SampleController.Current.ThemeChanged -= Current_ThemeChanged;
+ }
}
}
\ No newline at end of file