gpt4 book ai didi

c# - 将 XNA Color 对象转换为字符串

转载 作者:太空狗 更新时间:2023-10-30 00:46:24 28 4
gpt4 key购买 nike

我知道如何 convert a string to an XNA Color object ,但是如何将 C# Color 对象(如 Color.Blue)转换为它的字符串表示形式(例如“Blue”)。

最佳答案

您需要执行与上一个问题相反的操作:

  1. 从 XNA 颜色转换为系统颜色
  2. 尝试将系统颜色转换为已知颜色
  3. 如果转换成功,则在已知颜色上调用 ToString

例如

// Borrowed from previous question
using XnaColor = Microsoft.Xna.Framework.Graphics.Color;

System.Drawing.Color clrColor = System.Drawing.Color.FromName("Red");
XnaColor xnaColor = new XnaColor(clrColor.R, clrColor.G, clrColor.B, clrColor.A);

// Working back the other way
System.Drawing.Color newClrColor = System.Drawing.Color.FromArgb(xnaColor.A, xnaColor.R, xnaColor.G, xnaColor.B);
System.Drawing.KnownColor kColor = newClrColor.ToKnownColor();
string colorName = kColor != 0 ? kColor.ToString() : "";

注意:如果颜色名称未知,这将为您提供一个空字符串。

[编辑]您可能想在此处尝试使用 TypeConverter。我不确定 XNA Color 类型是否存在,但值得一试:

string colorName = System.ComponentModel.TypeDescriptor.GetConverter(typeof(Microsoft.Xna.Framework.Graphics.Color)).ConvertToString(yourXnaColor);

[编辑]

由于以上都不能满足您的要求,因此您必须尝试与 Jon 在这里所做的类似的方法:Convert string to Color in C#

您需要使用反射将所有 XNA 颜色拉入字典,就像他所做的那样,但是颠倒键和值,所以它是字典,然后编写一个函数来访问字典,它接受一个 Color 参数并返回姓名。

关于c# - 将 XNA Color 对象转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3392030/

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