WP7 - Оценка цвета темы - PullRequest
       1

WP7 - Оценка цвета темы

0 голосов
/ 31 августа 2011

Для приложения WP7 я хочу использовать дополнительный цвет, чтобы контрастировать с текущим цветом темы.

Я решил сделать контрастный цвет «красным», если цвет темы уже не был «красным», в этом случае я бы выбрал контрактный цвет «Синий»

Но следующий код не работает, так как он не определяет цвет темы как «Красный», даже если он установлен таким образом и, безусловно, показывает это в приложении.

private void AssessContrastColor()
    {

        System.Diagnostics.Debug.WriteLine("In assess color");

        SolidColorBrush themeBrush = App.Current.Resources["PhoneAccentBrush"] as SolidColorBrush;
        Color themeColor = themeBrush.Color;

        SolidColorBrush contrastBrush = new SolidColorBrush();

      //  contrastBrush.Color = ControlPaint.Light(themeColor); 



        if (themeColor == Colors.Red)
        {
          contrastBrush.Color = Colors.Blue;
        }


         else  contrastBrush.Color = Colors.Red;

        _ContrastThemeBrush = contrastBrush;


    }

Код кажется довольно простым, но, глядя на это через отладчик, цвет акцента телефона, когда я его получаю (когда он красный), не # FFFF0000, а что-то немного другое.

В дополнение к этому, я хотел создать контрастный цвет, который был бы немного светлее, чем цвет темы, огляделся вокруг, и казалось, что это можно процитировать немного кода, но затем наткнулся на ' ControlPaint.Light call ', который казался идеальным, но, кажется, не вариант под WP7? Следовательно, закомментировано выше.

Любой совет приветствуется. Спасибо

Ответы [ 2 ]

2 голосов
/ 31 августа 2011

Это может быть потому, что цвет Акцента не Red, а что-то близкое к нему, а точнее #E51400

Вы можете найти список всех цветов и способы их использования здесь .И для будущего ответа ответ, список всех цветов:

Blue     #1BA1E2
Brown    #A05000
Green    #339933
Lime     #8CBF26
Magenta  #FF0097
Orange   #F09609
Pink     #E671B8
Purple   #A200FF
Red      #E51400
Viridian #00ABA9

Но я бы настоятельно рекомендовал против изменения контрастных цветов.Скорее всего, вы сделаете контент менее читабельным.

0 голосов
/ 31 августа 2011

Если вы определяете пользовательский цвет на основе цвета акцента, он, скорее всего, сломается при использовании одиннадцатого (в зависимости от поставщика) цвета.Из документации :

Ваше приложение должно знать об этом дополнительном цвете и не делать предположений только по 10 системным цветам.Например, не иметь кода, который проверяет стандартные 10 цветов акцента и затем выполняет определенную операцию;одиннадцатый цвет может нарушить операцию

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...