private void UpdateColor(Hsv hsv, ColorUpdateReason reason) { m_currentHsv = hsv; m_currentRgb = ColorConversion.HsvToRgb(hsv); m_currentHex = GetCurrentHexValue(); SetColorAndUpdateControls(reason); }
private static void AddGradientStop(LinearGradientBrush brush, double offset, Hsv hsvColor, double alpha) { var rgbColor = ColorConversion.HsvToRgb(hsvColor); var color = Color.FromArgb( (byte)Math.Round(alpha * 255), (byte)Math.Round(rgbColor.R * 255), (byte)Math.Round(rgbColor.G * 255), (byte)Math.Round(rgbColor.B * 255)); var stop = new GradientStop(color, offset); brush.GradientStops.Add(stop); }
private Rgb ApplyConstraintsToRgbColor(Rgb rgb) { double minHue = MinHue; double maxHue = MaxHue; var minSaturation = MinSaturation / 100.0; var maxSaturation = MaxSaturation / 100.0; var minValue = MinValue / 100.0; var maxValue = MaxValue / 100.0; var hsv = ColorConversion.RgbToHsv(rgb); hsv.H = Math.Min(Math.Max(hsv.H, minHue), maxHue); hsv.S = Math.Min(Math.Max(hsv.S, minSaturation), maxSaturation); hsv.V = Math.Min(Math.Max(hsv.V, minValue), maxValue); return(ColorConversion.HsvToRgb(hsv)); }
private string GetToolTipString() { var sliderValue = (uint)Math.Round(Value); if (ColorChannel == ColorPickerHsvChannel.Alpha) { return(string.Format( CultureInfo.CurrentCulture, LocalizedStrings.ToolTipStringAlphaSlider, sliderValue)); } else { var parentColorPicker = GetParentColorPicker(); if (parentColorPicker != null) { var currentHsv = parentColorPicker.CurrentHsv; string localizedString; switch (ColorChannel) { case ColorPickerHsvChannel.Hue: currentHsv.H = Value; localizedString = LocalizedStrings.ToolTipStringHueSliderWithColorName; break; case ColorPickerHsvChannel.Saturation: localizedString = LocalizedStrings.ToolTipStringSaturationSliderWithColorName; currentHsv.S = Value / 100; break; case ColorPickerHsvChannel.Value: localizedString = LocalizedStrings.ToolTipStringValueSliderWithColorName; currentHsv.V = Value / 100; break; default: throw new NotSupportedException("Invalid ColorPickerHsvChannel."); } return(string.Format( CultureInfo.CurrentCulture, localizedString, sliderValue, ColorHelpers.ToDisplayName(ColorConversion.ColorFromRgba(ColorConversion.HsvToRgb(currentHsv))))); } else { var localizedString = ColorChannel switch { ColorPickerHsvChannel.Hue => LocalizedStrings.ToolTipStringHueSliderWithoutColorName, ColorPickerHsvChannel.Saturation => LocalizedStrings.ToolTipStringSaturationSliderWithoutColorName, ColorPickerHsvChannel.Value => LocalizedStrings.ToolTipStringValueSliderWithoutColorName, _ => throw new NotSupportedException("Invalid ColorPickerHsvChannel."), }; return(string.Format( CultureInfo.CurrentCulture, localizedString, sliderValue)); } } }