【发布时间】:2020-01-26 18:21:48
【问题描述】:
我的程序中有一些应用程序范围的资源:
<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 值。
谁能告诉我为什么会这样?
【问题讨论】: