14

我在 xaml 中有文本框

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

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

4

3 回答 3

34

首先,您需要在 C# 类的 Constructor 之前创建 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;

希望这有帮助

于 2012-12-26T12:52:31.663 回答
10

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

var phoneAccentBrush =  new SolidColorBrush((App.Current.Resources["PhoneAccentBrush"] as SolidColorBrush).Color);
于 2012-12-27T08:07:14.323 回答
0

将此添加到 xaml 的文本框中

Foreground="{StaticResource PhoneAccentBrush}"

或从 c# 设置它

btnDefault.Foreground = new SolidColorBrush((Color)Application.Current.Resources["PhoneAccentColor"]);
于 2016-01-08T18:52:37.323 回答