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

时间:2016-02-19 08:27:42

标签: c# wpf colors enumeration

我想让用户有机会为前景选择颜色。所以我用

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

但是它有2个问题,因为它有太多的项目:

  1. 需要很长时间才能填充
  2. 让用户感到困惑
  3. 有没有办法只列出主要颜色,而不是全部。 所以现在问题是定义主要颜色。我说它是该列表的一个子集。不仅是RED GREEN BLUE,还有上面列表中的141项。

    感谢您的帮助

1 个答案:

答案 0 :(得分:4)

您可以使用Color Picker工具包中的WPF Toolkit Extended控件来解决所有问题。

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

enter image description here

甚至使用颜色苍白:

enter image description here

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

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();
}

它可以让您选择用户可以使用的颜色,如何对其进行排序等。