Change text backgroundcolor in Word

lnu picture lnu · Apr 16, 2012 · Viewed 9.4k times · Source

the situation:

  • .net 3.5
  • c# or vb.net(also tested)
  • word 2007 add-in

I'm trying to set the Background Color of the text to a custom rgb color.

The code is the following:

Range r = this.Application.ActiveDocument.Range();
r.Text = "blabla";
r.Font.Shading.BackgroundPatternColor =(WdColor) Color.FromArgb(0, 214, 227,188).ToArgb();

At first it seems to work, except that the color is not the right one. It seems that whenever I set a custom color, it changes it to an existing WdColor constant. Having a look at the doc, it says :

Returns or sets the 24-bit color that's applied to the background of the Shading object. Can be any valid WdColor constant or a value returned by Visual Basic's RGB function.

So, my question is: does anybody has an idea of how it's supposed to work?

Thanx

Answer

Kiru picture Kiru · Apr 23, 2012

Use ColorTranslator

Range r = this.Application.ActiveDocument.Range();
r.Text = "blabla";
r.Font.Shading.BackgroundPatternColor =(WdColor)ColorTranslator.ToOle(0, 214, 227,188);