Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在Xaml值字段中设置自定义颜色值?_C#_.net_Wpf_Xaml - Fatal编程技术网

C# 如何在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样式的颜色

我有一些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="#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">