對不起,我錯了這裏。使用這種方法就是用浮動範圍從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