MigraDoc - 从Hex

时间:2018-03-02 23:24:55

标签: c# colors migradoc

在数据库中有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而不是#开头。我尝试使用#但它失败了......至少我得到的是渲染......只是没有我的颜色。

1 个答案:

答案 0 :(得分:5)

你必须更换"#"用" 0xff"得到你想要的东西。

使用短号码(仅限三个组件),Alpha通道将始终为0,颜色将完全透明。使用0xff后跟六个十六进制数字作为RGB颜色,您将获得具有完全不透明度的颜色。

更新:使用当前版本的MigraDoc 1.50(测试版5b或更高版本),您还可以使用哈希符号,后跟3位,6位或8位十六进制数字。 8位数字包括alpha通道,使用3或6位数字,使用FF设置 使用新版本,代码#ADD8E6将具有预期效果 使用0x前缀时没有任何变化。