不改变WP8中应用程序的颜色c#

时间:2014-09-22 13:09:31

标签: c# windows-phone-8

在我的设置页面中,我有一个listPicker控件,当我从Dark中选择Light时,我有两个值Darklistpicker我要更改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;
            } 

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

请建议我,等待回复。

由于

1 个答案:

答案 0 :(得分:0)

为此,请在App.xaml中定义您的自定义SolidColorBrushes,然后将它们设置为所有控件的Background / Foreground。然后只需更改这些画笔,它就会改变所有控件。

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