Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Change text backgroundcolor in Word

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

like image 875
lnu Avatar asked Apr 16 '12 13:04

lnu


1 Answers

Use ColorTranslator

Range r = this.Application.ActiveDocument.Range();
r.Text = "blabla";
r.Font.Shading.BackgroundPatternColor =(WdColor)ColorTranslator.ToOle(0, 214, 227,188);
like image 75
Kiru Avatar answered Nov 15 '22 04:11

Kiru