【问题标题】:Convert Drawing.Color into HTML color value将 Drawing.Color 转换为 HTML 颜色值
【发布时间】:2012-12-23 03:02:47
【问题描述】:

我已经问过这个问题,但我用错了措辞。

我在服务器上有一个方法GetRandColor(),它返回一个System.Drawing.Color 对象。

我想要的是能够在页面加载时使用它来设置 html 属性。举个例子,

<html>
<body bgcolor="#GetRandColor()">
<h1>Hello world!</h1>

</body>
</html>

【问题讨论】:

  • (我怀疑上面缺少一些括号。另外,可能是时候开始考虑放弃bgcolor ..)
  • 如果您的问题是将颜色转换为十六进制字符串,您可以使用System.Drawing.ColorTranslator.ToHtml(myColor);

标签: c# asp.net html


【解决方案1】:

您可以借助内联表达式做到这一点:Inline expressions in the .NET Framework

显示表情 (&lt;%= ... %&gt;)

bgcolor="<%= System.Drawing.ColorTranslator.ToHtml(GetRandColor()) %>"

【讨论】:

  • 有用的链接,但答案不正确。这里没有数据绑定,因此使用数据绑定表达式将不起作用。
  • 我刚刚恢复了..@Icarus
【解决方案2】:

您可以使用 ColorTranslator 将 Drawing.Color 转换为 HTML 颜色值。例如,

System.Drawing.Color c = System.Drawing.ColorTranslator.FromHtml("#F5F7F8"); 

String strHtmlColor = System.Drawing.ColorTranslator.ToHtml(c);

此链接也会对您有所帮助:msdn.microsoft.com/en-us/library/system.drawing.colortranslator.fromhtml.aspx

【讨论】:

    【解决方案3】:

    您不能从您的函数中返回 System.Drawing.Color 对象,因为浏览器只能理解文本。因此,您应该返回颜色的字符串表示形式,可以是 RGB、HEX 格式或其他格式。

    你的方法应该是这样的:

     protected string GetRandColor()
     {
         return ColorTranslator.ToHtml(Color.Red);
     }
    

    你可以这样设置表单的背景:

    <body style="background-color:<%=GetRandColor()%>;">
    

    【讨论】:

      【解决方案4】:

      如果 GetRandColor() 在静态类中,这应该可以工作:

      <body bgcolor="<%= System.Drawing.ColorTranslator.ToHtml(ClassName.GetRandColor()) %>">
      

      您可能需要在类名之前添加类的命名空间。

      【讨论】:

        【解决方案5】:
        public string GetRandHtmlColor(){
        
            System.Drawing.Color c = GetRandColor();
            return System.Drawing.ColorTranslator.ToHtml(c);
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-07-07
          • 1970-01-01
          • 2019-01-05
          • 2013-12-10
          • 2011-07-17
          • 2011-08-25
          • 2013-01-14
          • 1970-01-01
          相关资源
          最近更新 更多