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
前缀时没有任何变化。
数据库中有一个 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
前缀时没有任何变化。