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