LinearGradientBrush表现不如预期

时间:2014-03-18 00:02:21

标签: wpf 3d lineargradientbrush

我定义了LinearGradientBrush用于在MeshGeometry3D中绘制纹理,如下所示。我们的想法是刷子绝对末端的值应该用Silver绘制:

    <LinearGradientBrush x:Key="GrayOmitOutOfRangeIncreasing"   StartPoint="0,0.5" 
                                                                EndPoint="1,0.5" >
        <GradientStop Color="Silver" Offset="0.00" />
        <GradientStop Color="#000064" Offset="0.00000000000000014" />
        <GradientStop Color="#000091" Offset="0.043" />
        <GradientStop Color="#0000BE" Offset="0.087" />
        <GradientStop Color="#3C00B2" Offset="0.130" />
        <GradientStop Color="#7800A5" Offset="0.173" />
        ... and other gradient stops...
        <GradientStop Color="#FCE800" Offset="0.913" />
        <GradientStop Color="#FCF200" Offset="0.957" />
        <GradientStop Color="#FCFC00" Offset="0.99999" />
        <GradientStop Color="Silver" Offset="0.99999979" />
        <GradientStop Color="Silver" Offset="1" />
    </LinearGradientBrush>

相反,在绘制之前转换为介于0和1之间的范围的值将采用相邻颜色的阴影,如下图所示:

enter image description here

如何获得我想要的图像?

1 个答案:

答案 0 :(得分:1)

看看他们如何定义:

    <GradientStop Color="#FCFC00" Offset="0.99999" />
    <GradientStop Color="Silver" Offset="0.99999979" />
    <GradientStop Color="Silver" Offset="1" />

这意味着......什么,0.001%的网格将是从FCFC00到银的渐变。那是不可能被发现的。将倒数第二个银色渐变停止移动到0.98或者其他东西,看看是否能让你更接近。