对不起,我错了这里。使用这种方法就是用浮动范围从0到1
<Trigger Property="ItemsControl.AlternationIndex" Value="2">
<Setter Property="Background" Value="sc#1.0,0.7,1.0,0.5"></Setter>
</Trigger>
要使用ARGB值,我们必须利用这一点值,少一点直截了当
<Trigger Property="ItemsControl.AlternationIndex" Value="2">
<Setter Property="Background">
<Setter.Value>
<SolidColorBrush>
<SolidColorBrush.Color>
<Color A="255" R="250" G="200" B="150"/>
</SolidColorBrush.Color>
</SolidColorBrush>
</Setter.Value>
</Setter>
</Trigger>
更新
你还可以使用自定义MarkupExtension
<Trigger Property="ItemsControl.AlternationIndex" Value="2">
<Setter Property="Background" Value="{markup:BrushFromArgb 255, 250, 200, 150}"/>
</Trigger>
BrushFromArgbExtension
public class BrushFromArgbExtension : MarkupExtension
{
public BrushFromArgbExtension() { }
public BrushFromArgbExtension(byte a, byte r, byte g, byte b)
{
A = a;
R = r;
G = g;
B = b;
}
public byte A { get; set; }
public byte R { get; set; }
public byte G { get; set; }
public byte B { get; set; }
public override object ProvideValue(IServiceProvider serviceProvider)
{
return new SolidColorBrush(Color.FromArgb(A, R, G, B));
}
}
而且类似MarkupExtension
也可用于Color
<SolidColorBrush Color="{markup:FromArgb 255, 255, 200, 150}"/>
FromArgbExtension
public class FromArgbExtension : MarkupExtension
{
public FromArgbExtension() { }
public FromArgbExtension(byte a, byte r, byte g, byte b)
{
A = a;
R = r;
G = g;
B = b;
}
public byte A { get; set; }
public byte R { get; set; }
public byte G { get; set; }
public byte B { get; set; }
public override object ProvideValue(IServiceProvider serviceProvider)
{
return Color.FromArgb(A, R, G, B);
}
}
谢谢你,你知道我怎么可以转换颜色RGB到HTML轻松在VS?我的意思是我认为在RGB和HSV中,但不是HTML:O – 2010-11-11 20:24:43
当我说“HTML颜色”时,指的是指定符的格式,而不是色彩空间。格式为'#RRGGBB'或'#AARRGGBB',其中R,G和B以十六进制表示,而不是十进制。 – 2010-11-11 20:28:32
谢谢,这很好,但我不知道该怎么做。就像我看到255 217 220时,我想到的是浅红色,反之亦然,甚至在HSV中,我可以很快想象到我头上的颜色。但在我脑海中做HEX,从来没有做过,似乎我需要一个计算器,对吧? – 2010-11-11 20:31:04