2014-09-22 42 views
0

應用在我的設置頁面我有一個listPicker控制,即有兩個值DarkLight當我選擇Darklistpicker我想改變背景Silver前景色white按鈕的背景顏色到Black,按鈕前景色爲white和強調色彩是應用程序的black,和我做象下面這樣:不變色FO在WP8 C#

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; 
      } 

但它僅更改設置的頁面的背景,強調色彩色不是所有的日e應用程序,也不會更改應用程序的前景和按鈕顏色,爲什麼?

請提出我,等待回覆。

感謝

+1

try =>(App.Current.Resources [「PhoneAccentBrush」]與SolidColorBrush一樣).COlor = Colors.Black; – MatDev8 2014-09-22 13:23:54

回答

0

這樣做,定義App.xaml中您的自定義SolidColorBrushes,然後將它們設置爲背景/前景所有的控件。然後只需更改這些畫筆,它將更改所有控件。

不要將顏色更改爲系統定義的畫筆,因爲所有控件都使用它們。這就是爲什麼你的代碼改變了你不想改變的東西。