1
我想创建一个像MSVS 2013画笔编辑器一样的渐变画笔编辑器。创建一个wpf渐变画笔编辑器。 (RGB颜色到HSL/HSV)
我用下面的代码,使我的编辑
<VisualBrush x:Key="MyBrush" TileMode="None">
<VisualBrush.Visual>
<Canvas Background="Black" Width="1" Height="1" >
<Rectangle Width="1" Height="1" >
<Rectangle.Fill>
<LinearGradientBrush StartPoint="0,0" EndPoint="1,0">
<LinearGradientBrush.GradientStops>
<GradientStop Color="White" Offset="0" />
<GradientStop Color="{Binding ElementName=picker,Path=SelectedColour}" Offset="1" />
</LinearGradientBrush.GradientStops>
</LinearGradientBrush>
</Rectangle.Fill>
<Rectangle.OpacityMask>
<LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
<LinearGradientBrush.GradientStops>
<GradientStop Color="#FFFFFFFF" Offset="0"/>
<GradientStop Color="#00FFFFFF" Offset="1"/>
</LinearGradientBrush.GradientStops>
</LinearGradientBrush>
</Rectangle.OpacityMask>
</Rectangle>
</Canvas>
</VisualBrush.Visual>
</VisualBrush>
UPDATE:
我意识到,我应该RGB转换为HSV。
Y轴是颜色的亮度,X轴是饱和度。您需要将RGB颜色转换为HSL(色调,饱和度,亮度),然后使用这些值绘制(x,y)。请参考:http://www.niwa.nu/2013/05/math-behind-colorspace-conversions-rgb-hsl/ – Mangist
@Mangist谢谢,请发表您的评论作为答案,并告诉我如何获得X和Y来自HSL价值。 –