0

我试图在 C# 代码中获得相同的颜色渐变

        <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
            <GradientStop Color="Black" Offset="0"/>
            <GradientStop Color="#FF4557BA" Offset="1"/>
        </LinearGradientBrush>

到目前为止我有这个但它是错误的(找不到如何输入十六进制,所以我尝试了 argb)

  LinearGradientBrush gradient = new LinearGradientBrush();
    gradient.StartPoint = new Point( 0, 0 );
    gradient.EndPoint = new Point( 1, 1 );

    GradientStop color1 = new GradientStop();
    color1.Color = Colors.Black;
    color1.Offset = 0;
    gradient.GradientStops.Add(color1);

    GradientStop color2 = new GradientStop();
    color2.Color = Color.FromArgb(100,69,87,186);
    color2.Offset = 1;
    gradient.GradientStops.Add( color2 );

编辑

我正在尝试在 wp7 中执行此操作,其中我在一个属性中有这个渐变,我将绑定到我的控件的“背景”。

然而,我似乎得到了纯色而不是渐变。

4

3 回答 3

1
You can try like this
 Color color = (Color)ColorConverter.ConvertFromString("#FFDFD991");

by refering 
using System.Windows.Media;
于 2013-10-31T06:09:20.813 回答
0

到目前为止,这是我得到的:

  LinearGradientBrush gradient = new LinearGradientBrush();
    gradient.StartPoint = new Point( 0.5, 0 );
    gradient.EndPoint = new Point( 0.5, 1 );

    gradient.GradientStops.Add(new GradientStop(Colors.Black, 0));
    gradient.GradientStops.Add(new GradientStop(Color.FromArgb(100,69,87,186), 1));


    whatevercontrolyougot.Fill = gradient;

在这里工作正常。

截图:
在此处输入图像描述

于 2013-10-31T06:07:11.000 回答
0

问题是您在代码中将 alpha 通道裁判为 100,而在 xamal 中您有 0xFF==255

所以在代码中使用这一行

Color.FromArgb(0xFF, 0x45, 0x57, 0xBA);

C# 允许您以十进制、二进制或十六进制输入值,

于 2013-10-31T06:21:17.073 回答