MigraDoc - 从十六进制设置单元格颜色

MigraDoc - Setting Cell Colour from Hex

数据库中有一个 HEX 颜色代码字符串 ("#ADD8E6"),我想用它来更改 MigraDoc 单元格的背景颜色。我找到了 Color.Parse() 函数,但它并没有改变我的单元格的颜色。我必须执行以下操作:

string colourHex = (database.HexCode).Replace("#", "0x");
var colourObject = MigraDoc.DocumentObjectModel.Color.Parse(colourHex);

Cell.Shading.Color = colourObject;

我知道 Cell.Shading.Color 是正确的,因为如果我应用 Cell.Shading.Color = Colors.AliceBlue,那么单元格会按预期改变颜色。我了解 Color.Parse 要求 HEX 代码以 0x 而不是 # 开头。我尝试使用 # 但它失败了......至少我得到的是渲染......只是不是我的颜色。

您必须将“#”替换为“0xff”才能获得您想要的内容。

使用您的短数字(仅三个分量),alpha 通道将始终为 0,并且颜色将完全透明。使用 0xff 后跟 RGB 颜色的六个十六进制数字,您将获得完全不透明的颜色。

更新: 对于当前版本的 MigraDoc 1.50(beta 5b 或更高版本),您还可以使用井号后跟 3、6 或 8 个十六进制数字。 8 位数字包括 alpha 通道,3 位或 6 位数字使用 FF 的 alpha 设置。
有了新版本,代码#ADD8E6就会达到预期的效果。
使用 0x 前缀时没有任何变化。