public static Color InvertColor(Color color) { ColorF colorFloat = new ColorF(color); double hue0To1; double saturation0To1; double lightness0To1; colorFloat.GetHSL(out hue0To1, out saturation0To1, out lightness0To1); ColorF colorInvertedFloat = ColorF.FromHSL(hue0To1, saturation0To1, 1 - lightness0To1); Color invertedColor = new Color( colorInvertedFloat.Red0To255, colorInvertedFloat.Green0To255, colorInvertedFloat.Blue0To255, // and don't change the alpha value color.alpha); return(invertedColor); }