Подтвердить что ты не робот

Получить кисть акцента телефона программно С#

У меня есть текстовое поле в xaml

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

Как я могу получить значение phoneaccentbrush, программно (С#) из системного ресурса Windows Phone 7/7.5/8, чтобы я мог установить цвет переднего плана в соответствии с акцентом, выбранным в настройках WP.

4b9b3361

Ответ 1

Во-первых, вам нужно создать currentAccentColorHex перед создателем класса С#:

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

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

а затем используйте его везде, где вам нужно установить цвет для элемента управления: Пример для свойства Background для управления MyControl:

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

Надеемся на эту помощь

Ответ 2

спасибо Spaso:) Я сделал немного больше исследований и с вашей помощью я придумал следующий код

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

Ответ 3

добавьте это в свое текстовое поле в xaml

Foreground="{StaticResource PhoneAccentBrush}"

или установите это из С#

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