c# - DotNetBar - Visual Studio -测试色调
本文关键字:测试 色调 Studio Visual DotNetBar | 更新日期: 2023-09-27 18:18:34
我想尝试一下dotnetbar样式管理器的色调。在c#的System.Drawing中有相当多的颜色。颜色,所以我想做一个简单的应用程序与一个按钮,通过每个颜色步进。
我想做一些foreach循环之类的东西,但是它说system。drawing。color是一个类型。我是c#新手,有办法做到这一点吗?
您指的是通过静态属性在System.Drawing.Color
结构中定义的命名颜色。它们都在文档中列出了,但是正如您所发现的,没有直观的方法来遍历它们。
相反,您需要使用Reflection(简而言之,可以看到自己的代码)来获取它们。基本上,你所做的就是在Color
类型中获取所有公共静态属性的集合(在这种情况下,恰好是命名的颜色),然后循环遍历每个属性。
var colorType = typeof(System.Drawing.Color);
var staticProperties = colorType.GetProperties(BindingFlags.Static | BindingFlags.Public);
var colors = staticProperties.Select(prop => (Color)prop.GetValue(null, null));
foreach (Color clr in colors)
{
// Test the color...
}
颜色。fromarb做到了。使用它,你可以创建新的颜色。
例如:
Color c = Color.FromArgb(255, 0, 0);
顺便说一下,"通过每种颜色的步骤"可能有点多。有256(alpha) x 256(红色)x 256(绿色)x 256(蓝色)种颜色。4294967296组合
如果您仍然想尝试一下,只是为了从中获得乐趣,我建议您如下:
(你说你是新来的,所以我一步一步地指导你)
我们将做一个简单的例子,我们将只是改变我们将要按下的按钮的颜色。
- 创建一个带有按钮的表单,并为其添加一个后台工作器(可以在工具箱中找到) 选择backgroundWorker1,切换到事件视图,双击DoWork事件。
- 你现在应该得到一个backgroundWorker1_DoWork方法。
添加一些代码:
for (int r = 0; r <= 255; r++) { for (int g = 0; g <= 255; g++) { for (int b = 0; b <= 255; b++) { button1.BackColor = Color.FromArgb(r, g, b); } } }
在按钮中你现在只需要调用
backgroundWorker1.RunWorkerAsync();
现在你可以看颜色…很长很长时间了。:)