0
我想使用值0-1製作一個色相滑塊。色調滑塊與HSL顏色分類
當您調整滑塊時,它應該改變矩形的顏色。
它適用於Luminence和Saturation,但不適用於Hue。它始終保持相同的顏色。
色調
Luminence
我使用這個HSL色級
https://richnewman.wordpress.com/about/code-listings-and-diagrams/hslcolor-class/
項目來源
https://www.dropbox.com/s/fzj2kd01ei933y0/HueSlider.zip?dl=0
C#
public MainWindow()
{
InitializeComponent();
baseColor = new System.Drawing.Color();
baseColor = System.Drawing.Color.FromArgb(255, 255, 0, 0); //red
}
System.Drawing.Color baseColor;
System.Drawing.Color newColor;
// Hue Slider
private void slHue_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
{
// Change Hue
newColor = Hue(baseColor, (double)slHue.Value);
// Fill Rectangle
Color brushColor = Color.FromArgb(newColor.A, newColor.R, newColor.G, newColor.B);
Brush brush = new SolidColorBrush(brushColor);
rectangle.Fill = brush;
// Display Values
tbxHue.Text = slHue.Value.ToString();
tbxRGB.Text = newColor.ToString();
}
// Change Hue
public System.Drawing.Color Hue(System.Drawing.Color color, double hue)
{
HSLColor hslColor = new HSLColor(color);
hslColor.Hue *= hue; // 0 to 1
return hslColor;
}
XAML
<Slider x:Name="slHue"
HorizontalAlignment="Left"
Margin="114,72,0,0"
VerticalAlignment="Top"
Width="99"
Minimum="0"
Maximum="1"
Value="0"
ValueChanged="slHue_ValueChanged"/>
<Rectangle x:Name="rectangle"
HorizontalAlignment="Left"
Height="100"
Margin="29,31,0,0"
Stroke="Black"
VerticalAlignment="Top"
Width="100">
</Rectangle>