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

CJH*_*CJH 4 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;
Run Code Online (Sandbox Code Playgroud)

我知道这Cell.Shading.Color是正确的,因为如果我申请,Cell.Shading.Color = Colors.AliceBlue那么单元格会按预期更改颜色.我理解Color.Parse要求HEX代码开始0x而不是#.我尝试使用它#并且它失败了......至少我得到的是渲染......只是没有我的颜色.

Je *_*not 6

你必须用"0xff"替换"#"才能得到你想要的东西.

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

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

  • 太棒了 - 非常感谢!工作得很完美......!不知道为什么这被认为是'非主题'? (2认同)