如何将System.Drawing.Color
转换为Microsoft.Office.Interop.Word.WdColorIndex
?
到目前为止,我已经完成了代码,但是显示了错误“溢出”。
这是我完成的代码
Color bgcolor = Color.FromArgb(Convert.ToInt32(innerText));
Microsoft.Office.Interop.Word.WdColorIndex wbgc = (Microsoft.Office.Interop.Word.WdColorIndex)(bgcolor.R + 0x100 * bgcolor.G + 0x10000 * bgcolor.B);
doc.Range(iRangeStart, iRangeEnd).HighlightColorIndex = wbgc;
我该如何实现?
最佳答案
WdColorIndex
是一个枚举,而不是定义颜色系统的对象。这意味着您可以分配的值受到枚举元素的限制,例如wdBlack
或wdBlue
及其基础整数值。
您正在使用的技术将应用于WdColor
对象,而不是WdColorIndex
枚举:
var wordColor = (Microsoft.Office.Interop.Word.WdColor)(bgcolor.R + 0x100 * bgcolor.G + 0x10000 * bgcolor.B);
如
WdColorIndex
枚举中所定义,Word文档中的突出显示仅限于多种颜色。因此,您不能简单地将任何颜色转换为Word颜色以突出显示。您必须选择一个可用值。有关可能的值,请参见MSDN for WdColorIndex。关于c# - 如何将System.Drawing.Color转换为Microsoft Interop WdColorIndex,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15789429/