Почему цвета / кисти не отображаются при использовании ResourceDictionary? - PullRequest
0 голосов
/ 26 сентября 2019

У меня есть некоторые ресурсы приложения в моей программе:

<Application.Resources>
    <ResourceDictionary>

        <!--Colors-->
        <Color x:Key="PaleRed" R="255" G="127" B="127" />
        <Color x:Key="PaleGreen" R="222" G="255" B="209" />
        <Color x:Key="PaleBlue" R="112" G="200" B="255" />
        <Color x:Key="LightGray" R="155" G="155" B="155" />
        <Color x:Key="DarkGray" R="100" G="100" B="100" />

    </ResourceDictionary>
</Application.Resources>

В моей ViewModel я получаю фон

public Brush Background
    {
        get
        {
            Color paleRed = (Color)Application.Current.Resources["PaleRed"];
            Color paleGreen = (Color)Application.Current.Resources["PaleGreen"];
            Color paleBlue = (Color)Application.Current.Resources["PaleBlue"];
            Color lightGray = (Color)Application.Current.Resources["LightGray"]; 

            #region comment
            paleRed = Color.FromRgb(255, 127, 127);
            paleGreen = Color.FromRgb(222, 255, 209);
            paleBlue = Color.FromRgb(112, 200, 255);
            lightGray= Color.FromRgb(112, 112, 112);
            #endregion

            if (ComponentType == ComponentType.test)
            {
                return new SolidColorBrush(paleBlue);
            }

            var color = Percentage > 0.0 ? paleGreen : paleRed;
            Brush solidBack = new SolidColorBrush(color);
            Brush gradientBack = new LinearGradientBrush(lightGray, color, 0);

            return Amount-AmountSold > 0 ? solidBack : gradientBack;
        }
    }

При установке фона, как в примере выше (регион не прокомментирован), он показывает цвета в правильном направлении.Если я прокомментирую переназначение, цвета не отображаются (только белый фон).Но когда я устанавливаю точку останова с прокомментированной областью, цвета (и кисти) не равны нулю и имеют правильные значения ARGB.

Может кто-нибудь сказать мне, почему это происходит?

1 Ответ

1 голос
/ 26 сентября 2019

Как вы определяете цвета, вам также нужно указать A.

EG:

    <Application.Resources>
        <ResourceDictionary>
            <!--Colors-->
            <Color x:Key="PaleRed" R="255" G="127" B="127" A="255" />
            <Color x:Key="PaleGreen" R="222" G="255" B="209" />
            <Color x:Key="PaleBlue" R="112" G="200" B="255" />
            <Color x:Key="LightGray" R="155" G="155" B="155" />
            <Color x:Key="DarkGray" R="100" G="100" B="100" />
            <SolidColorBrush x:Key="PaleRedBrush" Color="{StaticResource PaleRed}"/>
        </ResourceDictionary>
    </Application.Resources>

Установить фон моего главного окна на PaleRedBrush

<Grid Background="{StaticResource PaleRedBrush}">

Это работает

Если я удаляю эту настройку A или использую другой цвет, тогда он белый - фон моего окна.

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