在数据库中有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
而不是#
开头。我尝试使用#
但它失败了......至少我得到的是渲染......只是没有我的颜色。
答案 0 :(得分:5)
你必须更换"#"用" 0xff"得到你想要的东西。
使用短号码(仅限三个组件),Alpha通道将始终为0,颜色将完全透明。使用0xff
后跟六个十六进制数字作为RGB颜色,您将获得具有完全不透明度的颜色。
更新:使用当前版本的MigraDoc 1.50(测试版5b或更高版本),您还可以使用哈希符号,后跟3位,6位或8位十六进制数字。 8位数字包括alpha通道,使用3或6位数字,使用FF设置
使用新版本,代码#ADD8E6
将具有预期效果
使用0x
前缀时没有任何变化。