2014-01-16 22 views
0

我試圖使用默認燈光主題的應用程序,但將應用程序欄的背景設置爲黃色,所以我從NuGet下載了PhoneThemeManager。這裏是我的代碼:ThemeManager.ToLightTheme()與應用程序欄

ThemeManager.ToLightTheme(); 
ApplicationBar = new ApplicationBar(); 
ApplicationBar.Background = Colors.Yellow; 

出於某種原因,應用程序欄仍然是白色的,任何人都可以看到我在做什麼錯?

+0

你現在可以試試嗎 –

回答

0

使用此它可以幫助你:

ThemeManager.ToLightTheme(); 
ApplicationBar = new ApplicationBar(); 
ApplicationBar.Background = Color.FromArgb(0xFF, R, G, B); 

放R,G,爲黃色

+0

沒有錯,因爲你不能將SolidBrushColor設置爲System.Windows.Media.Color !!!!! – kianm98

+0

使用此編輯的解決方案,它可以幫助 –

+0

沒有改變!!!!!!!! – kianm98

0

只注意到它的BackgroundColor B值;

你的方法是絕對正確的:

ApplicationBar.BackgroundColor = Colors.Yellow; 

對於RGB它應該是這樣的:

ApplicationBar.BackgroundColor = Color.FromArgb(0xFF, 246, 254, 64); 

如果你有HTML的顏色,你可以做::

string htmlColor = "#f6fe40"; 
ApplicationBar.BackgroundColor = Color.FromArgb(255, 
        Convert.ToByte(htmlColor.Substring(1, 2), 16), 
        Convert.ToByte(htmlColor.Substring(3, 2), 16), 
        Convert.ToByte(htmlColor.Substring(5, 2), 16) 
        ); 

編輯

看,我在主題管理器的源文件中找到:

Colors system trays appropriately and also any set ApplicationBar 
    instances. Will not theme ApplicationBar instances that are 
    created after the page's Navigated event or that are created and 
    not set immediately. 

所以請嘗試這樣的事情(例如)

void MainPage_Loaded(object sender, RoutedEventArgs e) 
     {   
      ThemeManager.ToLightTheme(); 
      ApplicationBar.BackgroundColor = Colors.Yellow; 
     } 
+0

我有同樣的問題,當我使用'ThemeManager.ToLightTheme()時ApplicationBar顏色不會改變;'請幫助我! – kianm98

1

爲了讓應用程序欄使用原有的風格:

ThemeManager.OverrideOptions = ThemeManagerOverrideOptions.SystemTrayColors; 
ThemeManager.ToLightTheme(); 

之後,您將可以從代碼或xaml中更改背景顏色。

0

希望這能爲我幫忙的工作,

ThemeManager.OverrideOptions = ThemeManagerOverrideOptions.None; ThemeManager.ToLightTheme();