[英]Windows Phone 8 Change Accent and Theme Colour
我正在創建一個Windows Phone 8應用程序,我想改變主題顏色,而不管用戶在手機操作系統中設置的主題,就像其他應用程序這樣做(例如Skype)。
到目前為止,我只是通過訪問XAML中的LayoutRoot元素來設法更改背景顏色:
this.LayoutRoot.Background = new SolidColorBrush(Colors.White);
和前景色:
(App.Current.Resources["PhoneForegroundBrush"] as SolidColorBrush).Color = Colors.Green;
但是,以下內容在Windows Phone 8上不起作用:
(App.Current.Resources["PhoneBackgroundBrush"] as SolidColorBrush).Color = Colors.White;
(App.Current.Resources["PhoneAccentBrush"] as SolidColorBrush).Color = Colors.Yellow;
我不知道為什么我不能改變PhoneBackgroundBrush
或PhoneAccentBrush
,我嘗試使用谷歌搜索解決方案,但他們只能使用Windows Phone 7 SDK。 這里的教程適用於WP 7但不適用於WP 8。
謝謝!
Fabrice絕對是在正確的軌道上。 獲取默認的PhoneAccentBrush並更改它的顏色是可行的方法。
將此代碼添加到App的構造函數的末尾,它將覆蓋應用程序的WP8的Accent顏色:
Resources.Remove("PhoneAccentColor");
Resources.Add("PhoneAccentColor", Colors.Magenta);
((SolidColorBrush)Resources["PhoneAccentBrush"]).Color = Colors.Magenta;
當我們運行此代碼並單擊<Button />
您可以看到新的Accent顏色:
如果需要不同的畫筆,則創建新畫筆。 無需替換現有的麻煩。 有一天你可能想要使用那些內置的刷子。
我建議您只為您的應用添加新資源並引用它們。
<Application.Resources>
<SolidColorBrush x:Key="AppAccentBrush" Color="#012345"/>
</Application.Resources>
在您的頁面中,像這樣引用它
<TextBlock Text="Custom Accent" Style="{StaticResource PhoneTextNormalStyle}"
Foreground="{StaticResource AppAccentBrush}"/>
我幾天前看了一篇博文:
http://www.rudyhuyn.com/blog/2013/01/18/forcer-un-theme-sous-windows-phone-8/
它是法語但不要害怕。
有一個示例可以更改Windows Phone 8中的顏色(請查看DarkTheme()方法)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.