创建一个HUE颜色条

时间:2011-09-28 14:26:33

标签: silverlight xaml

我正在创建一个颜色选择器,我正处于需要创建HUE颜色条的阶段:

enter image description here

创建它的一种方法是通过XAML中的渐变停止。例如:

<Rectangle Width="50" Height="100">
    <Rectangle.Fill>
        <LinearGradientBrush StartPoint="0.5,0.025" EndPoint="0.5,1" >
            <GradientStop Color="#FFFF0000" />
            <GradientStop Color="#FEFFFF00" Offset="0.15" />
            <GradientStop Color="#FE00FF00" Offset="0.3" />
            <GradientStop Color="#FE00FFFF" Offset="0.45" />
            <GradientStop Color="#FE0000FF" Offset="0.6" />
            <GradientStop Color="#FEFF00FF" Offset="0.85" />
            <GradientStop Color="#FFFF0000" Offset="1" />
        </LinearGradientBrush>
    </Rectangle.Fill>
</Rectangle>

以上将产生:

HUE Bar

但是,我不确定停止是否正确。

是否有关于如何生成此类栏的约定?任何建议都将受到高度赞赏。

最诚挚的问候,

凯西

1 个答案:

答案 0 :(得分:5)

看起来你的第二个最后一站与前一站的距离(+0.25)不同(+0.15)。您基本上希望所有停靠点之间的间隙相同,以获得相同的效果(该颜色条只是一个线性分布)。

请改为尝试:

<Rectangle.Fill>
    <LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1.0" >
        <GradientStop Color="#FFFF0000" />
        <GradientStop Color="#FEFFFF00" Offset="0.167" />
        <GradientStop Color="#FE00FF00" Offset="0.333" />
        <GradientStop Color="#FE00FFFF" Offset="0.5" />
        <GradientStop Color="#FE0000FF" Offset="0.667" />
        <GradientStop Color="#FEFF00FF" Offset="0.833" />
        <GradientStop Color="#FFFF0000" Offset="1.0" />
    </LinearGradientBrush>
</Rectangle.Fill>

看起来像:

enter image description here