コード例 #1
0
ファイル: ColorPicker.cs プロジェクト: sahwar/Pixelaria
        /// <summary>
        /// Sets the currently selected color
        /// </summary>
        /// <param name="color">The new value for the currently selected color</param>
        /// <param name="keepTransparency">Whether to keep the current alpha channel unmodified</param>
        public void SetCurrentColor(AhslColor color, bool keepTransparency = false)
        {
            AhslColor oldColor = Color.White.ToAhsl();

            if (keepTransparency)
            {
                color = new AhslColor(GetCurrentColor().A, color.Hf, color.Sf, color.Lf);
            }

            switch (_selectedColor)
            {
            case ColorPickerColor.FirstColor:
                oldColor       = _firstColor;
                FirstAhslColor = color;
                break;

            case ColorPickerColor.SecondColor:
                oldColor        = _secondColor;
                SecondAhslColor = color;
                break;
            }

            UpdateSliders();

            ColorPick?.Invoke(this, new ColorPickEventArgs(oldColor.ToColor(), color.ToColor(), _selectedColor));
        }