如何显示主要颜色列表而不是全部

How to show list of main colours not all

我想给用户选择前景颜色的机会。所以我用

填充了一个组合框
 foreach (PropertyInfo info in typeof(Colors).GetProperties())
      cmbStrokeColour.Items.Add(info.Name);

但这有两个问题,因为它的项目太多了:

  1. 填充时间太长
  2. 这让用户感到困惑

有没有办法只列出主要颜色而不是全部。 所以现在的问题是定义主要颜色。我会说这是该列表的一个子集。好吧,不仅是红色绿色蓝色而且不是上面列表中的 141 项。

感谢您的帮助

您可以使用 Color Picker controlfrom the WPF Toolkit Extended 工具包解决所有问题。

它允许您使用用户可以选择颜色的组合框 select:

甚至使用调色板:

您可以通过在您的视图中引用命名空间来使用它:

xmlns:toolkit="http://schemas.xceed.com/wpf/xaml/toolkit"

并将其用作标准对照:

<toolkit:ColorPicker Name="ClrPcker_Background" SelectedColorChanged="ClrPcker_Background_SelectedColorChanged"/>

在你后面的代码中:

private void ClrPcker_Background_SelectedColorChanged(object sender, RoutedPropertyChangedEventArgs<Color> e)
{
    TextBox.Text = "#" + ClrPcker_Background.SelectedColor.R.ToString() + ClrPcker_Background.SelectedColor.G.ToString() + ClrPcker_Background.SelectedColor.B.ToString();
}

它甚至允许您 select 哪些颜色可供用户使用,如何将它们分类等等。