如何在WPF应用程序中绘制色轮?

Ale*_*yev 6 wpf gradient transform color-wheel

我开始玩WPF并希望在表格上绘制色轮.

起初我尝试在ArcSegment上使用LinearGradientBrush,如下所示:

<Path StrokeThickness="35" Height="150" Width="150">
    <Path.Stroke>
        <LinearGradientBrush StartPoint="0,0" EndPoint="1,0">
            <GradientStop Color="Red" Offset="0.15" />
            <GradientStop Color="Orange" Offset="0.2" />
            <GradientStop Color="Yellow" Offset="0.35" />
            <GradientStop Color="Green" Offset="0.5" />
            <GradientStop Color="Blue" Offset="0.65" />
            <GradientStop Color="Indigo" Offset="0.75" />
            <GradientStop Color="Violet" Offset="0.9" />
        </LinearGradientBrush>
    </Path.Stroke>
    <Path.Data>
        <PathGeometry >
            <PathFigure IsClosed="True" StartPoint="25,70">
                <ArcSegment Point="25,71" IsLargeArc="True"
                    Size="50,50" SweepDirection="Clockwise" />
            </PathFigure>
        </PathGeometry>
    </Path.Data>
</Path>
Run Code Online (Sandbox Code Playgroud)

不成功,因为渐变仍然是水平的.

另一个想法是我应用渐变后以某种方式弯曲线条.但我找不到适当的变换.

如果没有标准变换,是否可以进行自定义变换?或者我应该按像素绘制色轮?

请问任何想法.

Joh*_*son 2

该库具有绘制色轮的像素着色器

示例 xaml:

<Ellipse Width="300"
         Height="300"
         Fill="White">
    <Ellipse.Effect>
        <effects:HsvWheelEffect />
    </Ellipse.Effect>
</Ellipse>
Run Code Online (Sandbox Code Playgroud)

请注意,椭圆必须设置画笔Fill才能工作,可以是任何颜色。