以编程方式获取手机重音刷c#

时间:2012-12-26 11:30:50

标签: windows-phone

我在xaml中有文本框

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

如何从Windows Phone 7 / 7.5 / 8的系统资源中以编程方式(c#)获取phoneaccentbrush的值,以便我可以设置前景色以匹配WP设置中选择的重音。

3 个答案:

答案 0 :(得分:34)

首先,您需要在C#类的构造函数之前创建currentAccentColorHex:

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

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

然后在需要为控件设置颜色的地方使用它:控件MyControl的Background属性示例:

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

希望这个帮助

答案 1 :(得分:10)

感谢Spaso :)我做了更多的研究,在你的帮助下我提出了以下代码

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

答案 2 :(得分:0)

将其添加到xaml

的文本框中
Foreground="{StaticResource PhoneAccentBrush}"

或从c#

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