如何在C#颜色对话框中指定可以拾取的颜色
本文关键字:颜色 对话框 | 更新日期: 2023-09-27 17:59:22
在Visual C#.NET中:
我希望能够创建一个颜色对话框,这样用户就只能选择几种颜色(特别是用于命令提示符/批处理文件的颜色)。这是怎么做到的?如何限制用户可以选择的颜色?
还有,有没有一种方法可以"停靠"颜色对话框,这样它就不会以新的形式打开,而是保持在我的主形式中?
这会是你想要的吗?
private void ShowColorDialog()
{
ColorDialog cd = new ColorDialog();
cd.CustomColors = new int[] { ToInt(Color.Red), ToInt(Color.Blue), ToInt(Color.YellowGreen) };
cd.SolidColorOnly = true;
cd.ShowDialog();
}
static int ToInt(Color c)
{
return c.R + c.G * 0x100 + c.B * 0x10000;
}
我认为您无法停靠颜色对话框。
以下是本例中ColorDialog控件的一些有用属性。但没有一个能满足你的要求。我认为在你的情况下,你必须创建自己的对话框与自定义的颜色列表。
AllowFullOpen-指定用户是否可以选择自定义颜色。
自定义颜色-用户选择的自定义颜色的集合。
FullOpen-指定用于拾取自定义颜色的零件是否自动打开。
用户可以创建自己的自定义颜色集。这些颜色包含在Int32中,Int32由创建颜色所需的ARGB分量(alpha、红色、绿色和蓝色)值组成。只有当AllowFullOpen设置为true时,才能定义自定义颜色。因此,不可能设置CustomColors并限制其他颜色。