簡體   English   中英

Windows Phone 8更改重音和主題顏色

[英]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;

我不知道為什么我不能改變PhoneBackgroundBrushPhoneAccentBrush ,我嘗試使用谷歌搜索解決方案,但他們只能使用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM