0

C#コードで同じ色のグラデーションを取得しようとしています

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

これまでのところ私はこれを持っていますが、間違っています(16進数で入力する方法が見つからないので、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

問題は、アルファチャンネルをコードで 100 として参照していて、xamal で 0xFF==255 を持っていることです

コードでこの行を使用してください

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

C# では、10 進数、2 進数、または 16 進数で値を入力できます。

于 2013-10-31T06:21:17.073 に答える
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 に答える