예제 #1
0
 private async void ColorValuesChanged(UISettings sender, object args)
 {
     bool darkTheme = ColorConstants.CurrentThemeIsDark();
     await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => {
         ((Frame)Window.Current.Content).RequestedTheme = darkTheme ? ElementTheme.Dark : ElementTheme.Light;
     });
 }
        public SettingsDialog(string initialPage = "General")
        {
            InitializeComponent();

            RequestedTheme = ColorConstants.CurrentThemeIsDark() ? ElementTheme.Dark : ElementTheme.Light;

            var version = Package.Current.Id.Version;

            FooterVersion = string.Format("Version {0}.{1}.{2}", version.Major, version.Minor, version.Build);
            NavigateFrame(initialPage);
        }
        // ###############################################################################################
        private void ThemeRadioButtons_Changed(object sender, SelectionChangedEventArgs e)
        {
            RadioButtons r = sender as RadioButtons;

            if (r.SelectedIndex < 0)
            {
                return;
            }
            var theme = ((ContentControl)r.SelectedItem).Content.ToString();

            var parentFrame  = (Frame)Window.Current.Content;
            var parentDialog = (FrameworkElement)((FrameworkElement)((FrameworkElement)this.Parent).Parent).Parent;

            App._LocalSettings.Set(UserSettings.Theme, theme);
            var darkTheme = ColorConstants.CurrentThemeIsDark();

            parentFrame.RequestedTheme  = darkTheme ? ElementTheme.Dark : ElementTheme.Light;
            parentDialog.RequestedTheme = darkTheme ? ElementTheme.Dark : ElementTheme.Light;
        }