2012-04-16 16 views
6

la situazione:Variazione backgroundcolor testo in Word

  • NET 3.5
  • C# o vb.net (anche testato)
  • Word 2007 add-in

sto cercando per impostare il colore di sfondo del testo su un colore rgb personalizzato.

Il codice è il seguente:

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

In un primo momento sembra funzionare, se non che il colore non è quello giusto. Sembra che ogni volta che si imposta un colore personalizzato, lo cambia in una costante WdColor esistente. Dare un'occhiata allo doc, è il seguente:

Restituisce o imposta il colore a 24 bit applicato allo sfondo dell'oggetto Shading. Può essere una costante WdColor valida o un valore restituito dalla funzione RGB di Visual Basic.

Quindi, la mia domanda è: qualcuno ha un'idea di come dovrebbe funzionare?

Thanx

+0

Eventuali duplicati [cambia-text-font-color-in-word-documento] (http://stackoverflow.com/questions/5292007/change-text -font-color-in-word-document) – Marshal

+0

Dice sostanzialmente la stessa cosa del doc: uso e indice o uno personalizzato ma questo è ciò che non funziona. – lnu

risposta

11

Usa ColorTranslator

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

grazie amico, funziona perfettamente. – lnu

+1

Il codice di esempio non funziona come indicato; Credo che manchi una chiamata al metodo intermedio: 'ColorTranslator.ToOle (Color.FromArgb (0, 214, 227,188));'. Forse una versione .Net diversa? – Chris