0

我想使用 LinearGradientBrush 在画布上水平填充我的矩形。

我的代码:

<Rectangle Width="200" Height="200">
    <Rectangle.Fill>
        <LinearGradientBrush StartPoint="0,0.5" EndPoint="1,0.5" >                   
            <GradientStop Color="Red" Offset="0" />
            <GradientStop Color="Blue" Offset="1" />                 
        </LinearGradientBrush>
    </Rectangle.Fill>
</Rectangle>

但我注意到最左边的红色不是#FFFF0000,而是#FFFE0000

在此处输入图像描述 那么有人知道为什么会这样吗?

4

1 回答 1

1

渐变是使用插值绘制的,因此它倾向于您选择的颜色,但不需要精确绘制。它还取决于您使用渐变的元素的大小。

解决方法 - 如下设置 Offset 属性:

<Rectangle Width="200" Height="200">
    <Rectangle.Fill>
        <LinearGradientBrush StartPoint="0,0.5" EndPoint="1,0.5">
            <GradientStop Color="Red" Offset="0.01" />
            <GradientStop Color="Blue" Offset="0.99"/>
        </LinearGradientBrush>
    </Rectangle.Fill>
</Rectangle>
于 2017-05-01T16:54:38.413 回答