如何获取所有颜色值?.NET颜色集合与ASP.NET示例代码实现

在 ASP.NET 中获取所有系统预定义的颜色值,可以通过遍历 KnownColor 枚举实现,以下是两种常用方法(Web Forms 和 MVC):

ASP.NET取得所有颜色值示例

方法 1:ASP.NET Web Forms 示例

// ColorsPage.aspx.cs
using System;
using System.Drawing;
using System.Web.UI.WebControls;
public partial class ColorsPage : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        // 获取所有非系统颜色(排除菜单高亮等动态颜色)
        foreach (KnownColor kc in Enum.GetValues(typeof(KnownColor)))
        {
            Color color = Color.FromKnownColor(kc);
            // 跳过系统颜色(如Control, Menu等)
            if (color.IsSystemColor) continue;
            // 创建带颜色块的Label
            Label lbl = new Label
            {
                Text = $"{color.Name} (#{color.R:X2}{color.G:X2}{color.B:X2})",
                BackColor = color,
                ForeColor = Color.Black, // 文字颜色
                BorderStyle = BorderStyle.Solid,
                BorderWidth = 1,
                Width = 200,
                Height = 30,
                Style = "margin:5px; padding:5px; display:inline-block;"
            };
            // 添加到页面容器
            container.Controls.Add(lbl);
        }
    }
}
<!-- ColorsPage.aspx -->
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ColorsPage.aspx.cs" Inherits="YourNamespace.ColorsPage" %>
<!DOCTYPE html>
<html>
<head>所有系统颜色</title>
</head>
<body>
    <form id="form1" runat="server">
        <div id="container" runat="server"></div>
    </form>
</body>
</html>

方法 2:ASP.NET MVC 示例

// ColorsController.cs
using System.Collections.Generic;
using System.Drawing;
using System.Web.Mvc;
public class ColorsController : Controller
{
    public ActionResult Index()
    {
        var colors = new List<ColorInfo>();
        foreach (KnownColor kc in Enum.GetValues(typeof(KnownColor)))
        {
            Color color = Color.FromKnownColor(kc);
            if (color.IsSystemColor) continue;
            colors.Add(new ColorInfo
            {
                Name = color.Name,
                HexCode = $"#{color.R:X2}{color.G:X2}{color.B:X2}",
                ColorObject = color
            });
        }
        return View(colors);
    }
}
public class ColorInfo
{
    public string Name { get; set; }
    public string HexCode { get; set; }
    public Color ColorObject { get; set; }
}
@* Views/Colors/Index.cshtml *@
@model List<ColorInfo>
<h2>系统预定义颜色</h2>
@foreach (var item in Model)
{
    <div style="background-color:@item.HexCode; 
                color:black; 
                border:1px solid #000; 
                width:200px; 
                height:30px; 
                margin:5px; 
                padding:5px; 
                display:inline-block;">
        @item.Name (@item.HexCode)
    </div>
}

关键说明:

  1. 颜色来源:使用 System.Drawing.KnownColor 枚举获取所有预定义颜色
  2. 过滤系统颜色:通过 color.IsSystemColor 排除动态系统颜色(如菜单高亮)
  3. 颜色格式:RGB 值转换为十六进制格式(如 #FF0000 代表红色)
  4. 显示效果:每个颜色块显示颜色名称和 HEX 值

输出效果示例:

如何获取所有颜色值?.NET颜色集合与ASP.NET示例代码实现

注意事项:

  1. 项目引用:需要添加 System.Drawing 程序集引用
  2. 安全性:ASP.NET Core 中建议使用 System.Drawing.Common NuGet 包
  3. 颜色数量:通常显示 140+ 种命名颜色(不包括系统动态颜色)
  4. 深色适配:示例中文字固定为黑色,实际应用可根据亮度调整文字颜色

通过以上方法,您可以在 ASP.NET 应用中完整展示所有系统预定义的颜色及其十六进制值。

ASP.NET取得所有颜色值示例

图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/287179.html

(0)
上一篇 2026年2月8日 07:28
下一篇 2026年2月8日 07:33

相关推荐

  • ASP.NET网站Button控件四角圆润如何设置?

    在ASP.NET开发中,按钮(Button)控件作为用户交互的核心元素,其视觉设计直接影响用户体验和界面美观度,四角圆润(即圆角)是现代UI设计中常见的优化手段,能有效提升按钮的亲和力和现代感,本文将详细介绍如何在ASP.NET环境中为Button控件设置圆润四角,涵盖不同技术栈的实现方法、兼容性处理及实际应用……

    2026年1月9日
    01730
  • 兄弟dcp9030cdn硒鼓清零步骤详解,如何轻松实现硒鼓归零?

    兄弟DCP9030CDN硒鼓清零方法:背景介绍兄弟DCP9030CDN是一款多功能打印机,其硒鼓是打印机中的重要组成部分,随着时间的推移,硒鼓的使用会导致打印效果变差,甚至无法正常打印,我们需要对硒鼓进行清零操作,以保证打印质量,以下是兄弟DCP9030CDN硒鼓清零方法,清零方法关闭打印机电源,打开打印机后盖……

    2025年11月4日
    05040
    • 服务器间歇性无响应是什么原因?如何排查解决?

      根源分析、排查逻辑与解决方案服务器间歇性无响应是IT运维中常见的复杂问题,指服务器在特定场景下(如高并发时段、特定操作触发时)出现短暂无响应、延迟或服务中断,而非持续性的宕机,这类问题对业务连续性、用户体验和系统稳定性构成直接威胁,需结合多维度因素深入排查与解决,常见原因分析:从硬件到软件的多维溯源服务器间歇性……

      2026年1月10日
      020
  • 光纤网域名解析错误上网时断时续,域名解析错误怎么办,域名解析错误怎么解决

    光纤网域名解析错误导致上网时断时续,核心解决方案是优先切换至运营商推荐或国内权威公共 DNS(如 114.114.114.114 或阿里 DNS),并排查光猫与路由器固件版本,2026 年数据显示此操作可解决 85% 以上的非硬件类断网故障,在 2026 年光纤普及率突破 98% 的背景下,用户常遭遇“能 Pi……

    2026年5月5日
    0875
  • 光存储未来技术会取代硬盘吗,光存储技术原理

    2026 年光存储技术已跨越实验室阶段,凭借 500TB 级单盘容量与 100 年冷数据保存寿命,成为数据中心应对“数据爆炸”与“能源危机”的终极解决方案,其综合成本较传统磁存储降低 40% 以上,技术突破:从“概念验证”到“规模商用”的质变存储密度与寿命的双重飞跃2026 年,光存储技术不再受限于传统光盘的物……

    2026年5月11日
    01141

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注