public override StandardValuesCollection GetStandardValues (ITypeDescriptorContext context) { lock (creatingCached) { if (cached != null) return cached; #if TARGET_JVM Color [] colors = new Color [KnownColors.Values.Length - 1]; Array.Copy (KnownColors.Values, 1, colors, 0, colors.Length); #else Array colors = Array.CreateInstance (typeof (Color), KnownColors.ArgbValues.Length - 1); for (int i=1; i < KnownColors.ArgbValues.Length; i++) { colors.SetValue (KnownColors.FromKnownColor ((KnownColor)i), i - 1); } #endif Array.Sort (colors, 0, colors.Length, new CompareColors ()); cached = new StandardValuesCollection (colors); } return cached; }