12

我对 C# 相当陌生,发现几乎无法将 RGB 颜色或 system.color 转换为 WdColor 的简单方法!

VB很简单,C#——真的有那么难吗?

我不想在我的项目中引用 VB。

我在一些单词自动化项目中使用它来为字体着色,例如

tmpRange.Find.Replacement.Font.Color = Color.FromArgb(100, 150, 75); 

但是上面这条线是不可能的,它需要是 WdColor。

4

3 回答 3

21
Color c = Colors.Blue;
var wdc = (Microsoft.Office.Interop.Word.WdColor)(c.R + 0x100 * c.G + 0x10000 * c.B);
于 2012-10-25T19:12:20.260 回答
6

添加对 Microsoft.VisualBasic dll 的引用

using Microsoft.VisualBasic;

int rgbColor = Information.RGB(100, 150, 75);
Word.WdColor wdColor = (Word.WdColor)rgbColor;
于 2012-10-25T19:17:09.763 回答
3

我认为人们可能会喜欢一种扩展方法:

    public static void ColorRGB(this Wd.Font font, int red, int green, int blue)
    {
        font.Color = (Wd.WdColor)(red + 0x100 * green + 0x10000 * blue);
    }
于 2014-11-26T05:22:59.260 回答