c# - 从 Guid 生成颜色

标签 c# colors guid

我的数据库中有各种由唯一 System.Guid's 标识的对象.当我显示它们时,我希望它们中的每一个都具有基于它们的 guid 的独特颜色。

所以我想要这样的东西:

public Color ColorFromGuid(Guid guid) { /* ?? */ }

在哪里

ColorFromGuid(databaseObject1.Guid) == ColorFromGuid(databaseObject1.Guid)
ColorFromGuid(databaseObject2.Guid) == ColorFromGuid(databaseObject2.Guid)
ColorFromGuid(databaseObject1.Guid) != ColorFromGuid(databaseObject2.Guid)

执行此操作的最佳方法是什么?

编辑 显然,WAY 独特的 guid 比颜色多,所以不可能每个 guid 都有自己独特的颜色。我只是在寻找一个好的品种。

最佳答案

你可以这样做:

return Color.FromArgb(guid.GetHashCode());

如果您需要不透明的颜色,请使用 the overload of Color.FromArgb可以让您指定 alpha。如果您希望相似的 GUID 生成非常不同的颜色,您可以对 Guid 进行不同类型的散列,例如an MD5 hash ,并获取数字以从中生成颜色。

关于c# - 从 Guid 生成颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11911422/

相关文章:

c# - 建立数据库连接的最佳方法是什么(静态、抽象、按请求……)?

css - 使用 HEX 或 RGBA

css - Safari 边框颜色悬停错误

sql - 将自动增量 id 重构为 **SQL DB 中的 GUID

sql - COMB 指南的性能值

C# 相当于 "Not MyEnum.SomeValue"

c# - 在 Entity Framework Core 3 中使用 TransactionScope 时 SET IDENTITY_INSERT 不起作用

c# - 如何使用MVVM以编程方式更改ComboBox SelectedValue

video - 如何为输入颜色设置与视频大小相同的大小?

c# - GUID 的格式是否始终相同?