Setting CustomColors in a ColorDialog

Viewed 8046

Custom color set in the color dialog are supposed to be set to {Blue, Blue} using the following code:

colorDialog1.CustomColors = new int[] { System.Drawing.Color.Blue.ToArgb(), 0xFF0000 };
colorDialog1.ShowDialog();

But, I am getting a different set {Black, Blue}:

enter image description here

Any idea What I am doing wrong here? Thanks.

3 Answers

If you have an array of colors, you can translate them using Linq:

colorDialog1.CustomColors = ThemeColors.Select(x => ColorTranslator.ToOle(x)).ToArray()

The ThemeColors array would be something like this:

public static Color[] ThemeColors
{
   get => new[]
   {
      Color.FromArgb(255, 185, 0),
      Color.FromArgb(231, 72, 86),
      Color.FromArgb(0, 120, 215),
      Color.FromArgb(0, 153, 188),
      Color.DarkOrange
   }
}

Note: Don't forget to add:

using System.Linq;
Related