C# 如何在Xaml值字段中设置自定义颜色值?
我有一些XAML,如下所示:C# 如何在Xaml值字段中设置自定义颜色值?,c#,.net,wpf,xaml,C#,.net,Wpf,Xaml,我有一些XAML,如下所示: <Trigger Property="ItemsControl.AlternationIndex" Value="2"> <Setter Property="Background" Value="Red"></Setter> </Trigger> 如何将颜色设置为红色,例如250 200 150?我尝试了color250200150,和250200150,但没有成功。有什么想法吗?使用HTML样式的颜色
<Trigger Property="ItemsControl.AlternationIndex" Value="2">
<Setter Property="Background" Value="Red"></Setter>
</Trigger>
如何将颜色
设置为红色
,例如250 200 150
?我尝试了color250200150
,和250200150
,但没有成功。有什么想法吗?使用HTML样式的颜色
<Trigger Property="ItemsControl.AlternationIndex" Value="2">
<Setter Property="Background" Value="#FF0000"></Setter>
</Trigger>
或者,如果您想要alpha透明度:
<Trigger Property="ItemsControl.AlternationIndex" Value="2">
<Setter Property="Background" Value="#80FF0000"></Setter>
</Trigger>
或者使用示例颜色250200150:
<Trigger Property="ItemsControl.AlternationIndex" Value="2">
<Setter Property="Background" Value="#FAC896"></Setter>
</Trigger>
对不起,我错了。使用它的方法是使用0到1之间的浮点值
<Trigger Property="ItemsControl.AlternationIndex" Value="2">
<Setter Property="Background" Value="sc#1.0,0.7,1.0,0.5"></Setter>
</Trigger>
BrushFromArgbExtension
类似的MarkupExtension
也可以用于Color
<SolidColorBrush Color="{markup:FromArgb 255, 255, 200, 150}"/>
可以直接将XAML控件元素上的“background”属性设置为十六进制值
<Button Background="#292929">
如果你愿意,你也可以在开头加上alpha
<Button Background="#55292929">
了解更多信息谢谢,您知道如何在VS中轻松地将颜色从RGB转换为HTML吗?我的意思是我想用RGB和HSV,但不是HTML:当我说“HTML颜色”时,是指说明符的格式,而不是颜色空间。格式是
#RRGGBB
或#AARRGGBB
,R、G和B是十六进制的,不是十进制的。谢谢,这很好,但我不知道该怎么做。当我看到255 217 220时,我想到浅红色,反之亦然,甚至在HSV中,我可以很快想象出我脑海中的颜色。但是在我的脑海中用十六进制来做这个,从来没有这样做过,看起来我需要一个计算器,对吗?Windows计算器可以帮你做:使用科学视图,输入你的数字,然后将它从“Dec”切换到“HEX”。谢谢,我想我会被十六进制颜色粘住。那是金色的。你知道sc是什么意思吗?您还知道在程序性能方面,这比使用HTML颜色慢还是快?我记得一个朋友告诉我WPF使用HTML颜色,因为它们解析速度更快。好问题,scRGB代表什么?有人吗?:)我不相信在解析过程中有任何实时差异,但我不能确定。但是,除非这对您来说是一个真正的瓶颈,否则这听起来像是过早的优化:)您在scRGB颜色空间中指定颜色:是的,我查看了该页面,但找不到清晰的“s”代表,而“c”代表。但也许这不是问题的开始。我可能读过wrong@FredrikHedblad这位先生太棒了!为长期存在的问题提供了极好的解决方案。非常感谢。
<SolidColorBrush Color="{markup:FromArgb 255, 255, 200, 150}"/>
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);
}
}
<Button Background="#292929">
<Button Background="#55292929">