【问题标题】:How do I find a random color in C# [closed]如何在 C# 中找到随机颜色 [关闭]
【发布时间】:2014-09-27 11:22:58
【问题描述】:

我正在开发一个游戏应用程序,如果你赢得游戏,屏幕背景会迅速改变颜色。如何让我的窗口窗体的背景显示随机颜色?

也许我可以使用

Random i = new Random() 

方法,但我不太确定如何使用它来制作颜色??

【问题讨论】:

  • 考虑Color.FromArgb - 然后指定适当范围的随机值,根据需要屏蔽 alpha。 (但随机颜色并不总是最漂亮的。)
  • 好吧,如果颜色是基于 数字 并且 Random 给你一个随机数,你可以生成一些随机数并使用它们来构造颜色。如果您在编码后遇到问题,请提出问题。阅读 MSDN 上 RandomColor 类的文档。
  • 只需展示如何从一些整数创建颜色,其余的很容易。

标签: c# colors background


【解决方案1】:

这样试试

private static Random rand = new Random();

color= Color.FromArgb(this.rand.Next(256), this.rand.Next(256), this.rand.Next(256));

请参阅此处以获取有关 Color.FromArgb 的文档

您可以使用此函数在 3 个不同的重载中创建颜色(仅使用 int32)

  1. 一个整数 --> 从 32 位 ARGB 值创建颜色结构。

  2. 三个整数 --> 从指定的 8 位颜色值(红色、绿色和蓝色)创建颜色结构。 alpha 值隐含为 255(完全不透明)。虽然此方法允许为每个颜色分量传递一个 32 位的值,但每个分量的值限制为 8 位。

  3. 四个整数--> 从四个 ARGB 分量(alpha、红色、绿色和蓝色)值创建一个 Color 结构。虽然此方法允许为每个组件传递一个 32 位的值,但每个组件的值限制为 8 位。

【讨论】:

    【解决方案2】:
    Random rnd = new Random();
    Color c = Color.FromArgb(rnd.Next(0xFFFFFF + 1)); // assuming you do not want any transparency
    

    【讨论】:

      【解决方案3】:

      我最近才这样做!这是一个代码sn-p。您需要使用十六进制代码

       string color = "";
                      Random rand = new Random();
                      color = string.Format("#{0}{1}{2}{3}{4}{5}", rand.Next(0, 9), rand.Next(0, 9), rand.Next(0, 9), rand.Next(0, 9), rand.Next(0, 9), rand.Next(0, 9));
                  this.BackColor = System.Drawing.ColorTranslator.FromHtml(color);
      

      要快速闪烁,你需要使用循环或计时器来一遍又一遍地重复此代码

      【讨论】:

      • 嗯,计时器?我以前没用过!我在哪里可以找到它?
      • 如果你去查看->其他窗口->工具箱你可以在那里找到计时器
      • 这甚至不会选择所有随机颜色 - 它会非常偏向暗色。
      猜你喜欢
      • 2012-06-13
      • 1970-01-01
      • 1970-01-01
      • 2018-11-29
      • 2011-08-13
      • 2014-09-08
      • 1970-01-01
      • 2017-10-06
      • 1970-01-01
      相关资源
      最近更新 更多