在我的设置页面中,我有一个listPicker
控件,当我从Dark
中选择Light
时,我有两个值Dark
和listpicker
我要更改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;
}
但是它只更改了设置页面的背景和强调色,而不是所有应用程序,也没有改变应用程序的前景和按钮颜色,为什么?
请建议我,等待回复。
由于
答案 0 :(得分:0)
为此,请在App.xaml中定义您的自定义SolidColorBrushes,然后将它们设置为所有控件的Background / Foreground。然后只需更改这些画笔,它就会改变所有控件。
不要将颜色更改为系统定义的画笔,因为所有控件都使用它们。这就是为什么你的代码会改变你不想改变的东西。