不要在 WP8 c# 中更改应用程序的颜色

本文关键字:应用程序 颜色 WP8 | 更新日期: 2023-09-27 18:23:50

在我的设置页面中,我有一个listPicker控件,当我从listpicker中选择Dark时,它有两个值DarkLight,我想将背景更改为Silver前景色white按钮背景色更改为Black,按钮前景色更改为white,强调色是应用程序的black, 我这样做如下:

private void themelistPicker1_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            ListPickerItem lpi = (sender as ListPicker).SelectedItem as ListPickerItem;
            themename = lpi.Content.ToString();
            if (themename == "Dark")
            {
                SolidColorBrush brush = new SolidColorBrush();
                brush.Color = Color.FromArgb(255, 192, 192, 192);
                App.RootFrame.Background = brush;
                ((SolidColorBrush)Resources["PhoneAccentBrush"]).Color = Colors.Black;
                ((Color)Resources["PhoneForegroundColor"])= Colors.Black;
            }
            else 
            {
                SolidColorBrush brush = new SolidColorBrush();
                brush.Color = Color.FromArgb(255, 255, 255, 255);
                App.RootFrame.Background = brush;
                ((SolidColorBrush)Resources["PhoneAccentBrush"]).Color = Colors.Blue;
                ((Color)Resources["PhoneForegroundColor"])= Colors.Black;
            } 

但它只更改设置页面的背景和主题色,而不是所有应用程序,也不会更改应用程序的前景和按钮颜色,为什么?

请建议我,等待回复。

谢谢

不要在 WP8 c# 中更改应用程序的颜色

为此,请在 App.xaml 中定义自定义 SolidColorBrushes,然后将它们设置为所有控件的背景/前景。然后只需更改这些画笔,它将更改所有控件。

不要更改系统定义的画笔的颜色,因为所有控件都使用它们。这就是为什么你的代码改变了你不想改变的东西。