Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var webColors = GetConstants(typeof(Color));
- var sysColors = GetConstants(typeof(SystemColors));
- static List<Color> GetConstants(Type enumType)
- {
- MethodAttributes attributes = MethodAttributes.Static | MethodAttributes.Public;
- PropertyInfo[] properties = enumType.GetProperties();
- List<Color> list = new List<Color>();
- for (int i = 0; i < properties.Length; i++)
- {
- PropertyInfo info = properties[i];
- if (info.PropertyType == typeof(Color))
- {
- MethodInfo getMethod = info.GetGetMethod();
- if ((getMethod != null) && ((getMethod.Attributes & attributes) == attributes))
- {
- object[] index = null;
- list.Add((Color)info.GetValue(null, index));
- }
- }
- }
- return list;
- }
- var webColors = GetConstants(typeof(Color));
- var sysColors = GetConstants(typeof(SystemColors));
- webColors.Sort(new StandardColorComparer());
- sysColors.Sort(new SystemColorComparer());
- class StandardColorComparer : IComparer<Color>
- {
- // Methods
- public int Compare(Color color, Color color2)
- {
- if (color.A < color2.A)
- {
- return -1;
- }
- if (color.A > color2.A)
- {
- return 1;
- }
- if (color.GetHue() < color2.GetHue())
- {
- return -1;
- }
- if (color.GetHue() > color2.GetHue())
- {
- return 1;
- }
- if (color.GetSaturation() < color2.GetSaturation())
- {
- return -1;
- }
- if (color.GetSaturation() > color2.GetSaturation())
- {
- return 1;
- }
- if (color.GetBrightness() < color2.GetBrightness())
- {
- return -1;
- }
- if (color.GetBrightness() > color2.GetBrightness())
- {
- return 1;
- }
- return 0;
- }
- }
- class SystemColorComparer : IComparer<Color>
- {
- // Methods
- public int Compare(Color color, Color color2)
- {
- return string.Compare(color.Name, color2.Name, false, CultureInfo.InvariantCulture);
- }
- }
- var webColors =
- Enum.GetValues(typeof(KnownColor))
- .Cast<KnownColor>()
- .Where (k => k >= KnownColor.Transparent && k < KnownColor.ButtonFace) //Exclude system colors
- .Select(k => Color.FromKnownColor(k));
- .OrderBy(c => c.GetHue())
- .ThenBy(c => c.GetSaturation())
- .ThenBy(c => c.GetBrightness());
- var colors = Enum.GetValues(typeof(KnownColor))
- .Cast<KnownColor>()
- .Select(kc => Color.FromKnownColor(kc))
- .OrderBy(c => c.GetHue())
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement