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

方法 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>
}
关键说明:
- 颜色来源:使用
System.Drawing.KnownColor枚举获取所有预定义颜色 - 过滤系统颜色:通过
color.IsSystemColor排除动态系统颜色(如菜单高亮) - 颜色格式:RGB 值转换为十六进制格式(如
#FF0000代表红色) - 显示效果:每个颜色块显示颜色名称和 HEX 值
输出效果示例:

注意事项:
- 项目引用:需要添加
System.Drawing程序集引用 - 安全性:ASP.NET Core 中建议使用
System.Drawing.CommonNuGet 包 - 颜色数量:通常显示 140+ 种命名颜色(不包括系统动态颜色)
- 深色适配:示例中文字固定为黑色,实际应用可根据亮度调整文字颜色
通过以上方法,您可以在 ASP.NET 应用中完整展示所有系统预定义的颜色及其十六进制值。

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

