2012-12-26 31 views
13

我在XAML中有文本框GET電話口音刷編程C#

<TextBlock Style="{StaticResource PhoneTextExtraLargeStyle}" FontSize="{StaticResource PhoneFontSizeLarge}" FontFamily="{StaticResource PhoneFontFamilySemiLight}" Margin="12,10,12,0" /> 

我怎樣才能從Windows手機的系統資源7/7.5/8,以獲得phoneaccentbrush,編程(C#)的價值,我可以設置前景色以匹配在WP設置中選擇的口音。

回答

33

首先,你需要你的構造函數C#類之前創建currentAccentColorHex:

public partial class MainPage : PhoneApplicationPage 
{ 
    Color currentAccentColorHex = (Color)Application.Current.Resources["PhoneAccentColor"]; 

    // Constructor 
    public MainPage() 
    {   
     //... 

,然後你需要的地方設置顏色爲控制使用它:例爲背景屬性控制MyControl:

SolidColorBrush backColor = new SolidColorBrush(currentAccentColorHex); 
MyControl.Background = backColor; 

希望這有助於

+0

感謝司帕索:) –

+0

完美的答案!謝謝! –

+0

不幸的是,使用此方法更改主題後,應用程序必須重新啓動。否則,舊的主題值將從Ressource字典中取出。 – ThisWillDoIt

10

感謝司帕索:)我做了一點研究,並與你的幫助,我想出了下面的代碼

var phoneAccentBrush = new SolidColorBrush((App.Current.Resources["PhoneAccentBrush"] as SolidColorBrush).Color); 
+0

有趣。我刻意避免不給你一個類似你的代碼,只是爲了更清楚發生了什麼事情。好的,這兩個代碼的作品。 –

+0

Spaso,給了你一個提供解決方案的優先位置 –

+0

好吧。將使他的解決方案成爲答案。 –

0

這在XAML

Foreground="{StaticResource PhoneAccentBrush}" 

或設置該從添加到您的文本框C#

btnDefault.Foreground = new SolidColorBrush((Color)Application.Current.Resources["PhoneAccentColor"]);