如何将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是一个枚举,而不是定义颜色系统的对象。这意味着您可以分配的值受到枚举元素的限制,例如wdBlackwdBlue及其基础整数值。

您正在使用的技术将应用于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/

10-10 16:58