c# - DotNetBar - Visual Studio -测试色调

本文关键字:测试 色调 Studio Visual DotNetBar | 更新日期: 2023-09-27 18:18:34

我想尝试一下dotnetbar样式管理器的色调。在c#的System.Drawing中有相当多的颜色。颜色,所以我想做一个简单的应用程序与一个按钮,通过每个颜色步进。

我想做一些foreach循环之类的东西,但是它说system。drawing。color是一个类型。我是c#新手,有办法做到这一点吗?

c# - DotNetBar - Visual Studio -测试色调

您指的是通过静态属性在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组合

如果您仍然想尝试一下,只是为了从中获得乐趣,我建议您如下:

(你说你是新来的,所以我一步一步地指导你)

我们将做一个简单的例子,我们将只是改变我们将要按下的按钮的颜色。

  1. 创建一个带有按钮的表单,并为其添加一个后台工作器(可以在工具箱中找到)
  2. 选择backgroundWorker1,切换到事件视图,双击DoWork事件。
  3. 你现在应该得到一个backgroundWorker1_DoWork方法。
  4. 添加一些代码:

    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);
            }
        }
    }
    
  5. 在按钮中你现在只需要调用

    backgroundWorker1.RunWorkerAsync();
    

现在你可以看颜色…很长很长时间了。:)