首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C# - DotNetBar - Visual Studio -测试色调颜色?

C# - DotNetBar - Visual Studio -测试色调颜色?
EN

Stack Overflow用户
提问于 2011-12-20 15:53:34
回答 3查看 679关注 0票数 0

我想尝试一下dotnetbar样式管理器的色调。在C#的System.Drawing.Color中有相当多的颜色,所以我想做一个简单的应用程序,它有一个按钮,可以遍历每种颜色。

我想做一些foreach循环或者类似的事情,但是它说System.Drawing.Color是一种类型。我是C#的新手,有没有办法做到这一点?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-12-20 16:19:20

您引用的是通过静态属性在System.Drawing.Color structure中定义的命名颜色。它们都列在文档中,但是正如您所发现的,没有直观的方式遍历它们。

取而代之的是,您需要使用Reflection (简而言之,可以看到自己的代码)来获取它们。基本上,您要做的是获取Color类型中所有公共静态属性的集合(在本例中,恰好是命名的颜色),然后循环遍历每个属性。

例如,您可以使用这样的代码(警告,未测试!):

代码语言:javascript
复制
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...
}
票数 1
EN

Stack Overflow用户

发布于 2011-12-20 16:02:58

Color.FromArgb做到了这一点。使用它,你可以制作新的颜色。

例如,要使其变为红色:

代码语言:javascript
复制
Color c = Color.FromArgb(255, 0, 0); 

顺便说一句,“逐步通过每种颜色”可能有点多。有256(alpha) x 256(红色)x 256(绿色)x 256(蓝色)颜色。它们是4294967296组合。

票数 1
EN

Stack Overflow用户

发布于 2011-12-20 16:15:23

如果你仍然想尝试一下,只是为了好玩,我会推荐以下几点。

(你说你是新手,所以我会做一步一步的指导)

我们将创建一个简单的示例,我们只需更改将要按下的按钮的颜色。

  1. 创建一个带有按钮的窗体,并向其中添加backgroundworker (可在工具箱中找到)。
  2. 选择backgroundWorker1,切换到events视图,然后双击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++) {r++1.BackColor= Color.FromArgb(r,g,b);}按钮中的

  • 现在只需调用

backgroundWorker1.RunWorkerAsync();

现在你可以观察颜色了..。很久很久了。:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8572288

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档