public virtual NSColor BlendedColorWithFraction(double fraction, NSColor aColor) { NSColor myColor = ColorUsingColorSpaceName(NSColorSpace.NSCalibratedRGBColorSpace); NSColor other = aColor.ColorUsingColorSpaceName(NSColorSpace.NSCalibratedRGBColorSpace); double mr, mg, mb, ma, or, og, ob, oa, red, green, blue, alpha; if (fraction <= 0.0f) { return this; } if (fraction >= 1.0f) { return aColor; } if (myColor == null || other == null) { return null; } mr = mg = mb = ma = 0; myColor.GetRedGreenBlueAlpha(ref mr, ref mg, ref mb, ref ma); or = og = ob = oa = 0; other.GetRedGreenBlueAlpha(ref or, ref og, ref ob, ref oa); red = fraction * or + (1 - fraction) * mr; green = fraction * og + (1 - fraction) * mg; blue = fraction * ob + (1 - fraction) * mb; alpha = fraction * oa + (1 - fraction) * ma; return ColorWithCalibratedRed(red, green, blue, alpha); // return [NSColorClass colorWithCalibratedRed: red green: green blue: blue alpha: alpha]; }