gpt4 book ai didi

c# - 在 C# 中将颜色名称转换为十六进制

转载 作者:行者123 更新时间:2023-12-02 00:51:48 25 4
gpt4 key购买 nike

我编写了一个程序来从 ColorDialogBox 获取 Color 并使用 ColorTranslator.ToHtml 将其转换为 Hex 值,但它不会返回 Hex 值,而是返回纯色名称。有任何解决这个问题的方法吗 ?

这是我的代码:

   private void chooseClr_Click(object sender, EventArgs e) {

colorDialog1.ShowDialog();
Color checking = colorDialog1.Color;
string hexColor = ColorTranslator.ToHtml(checking);
MessageBox.Show(hexColor);
}

最佳答案

如果它是有效的 HTML 颜色,它返回纯色名称。
如果您的颜色是自定义的(没有 HTML 名称),则它返回 HEX 值。

对我来说,最快最简单的解决方案是编写自定义函数:

public static class HexColorExtensions
{
public static string ToHex(this Color c) => $"#{c.R:X2}{c.G:X2}{c.B:X2}";
}

现在,您可以这样简单地使用它:

Console.WriteLine(Color.Green.ToHex()); // #008000
Console.WriteLine(Color.Black.ToHex()); // #000000
Console.WriteLine(Color.FromArgb(1, 2, 3).ToHex()); // #010203

关于c# - 在 C# 中将颜色名称转换为十六进制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39137486/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com