2011-05-06 2 views
2

J'utilise Microsoft.Office.Interop.PowerPoint pour générer des fichiers PowerPoint à partir d'une application C#.
Je suis sur Office 2007 SP2.Intégration C# et Powerpoint: problème de définition des couleurs

je produis des graphiques, et je veux définit les couleurs de ma série avec quelque chose comme ceci:

serie.Border.Color = Color.Red.ToArgb(); 

et je le fais avec des couleurs différentes. Mon problème est que lorsque les diapositives sont générées, les couleurs ne sont pas les mêmes: quand je définis une série en rouge, elle est dessinée en bleu, et le bleu est rendu en rouge. (Le vert reste vert).

La méthode ToArgb() n'est pas la méthode à utiliser lorsque je souhaite envoyer une couleur à PowerPoint?
Dois-je utiliser une autre méthode du type Couleur ou y a-t-il une conversion manuelle à faire?

Répondre

2

J'ai rencontré le même problème il y a quelques années. C'est vraiment étrange et je n'ai trouvé aucune documentation à ce sujet, mais au fond, le rouge et le bleu sont mélangés.

À l'époque, je l'ai écrit ces méthodes:

public static int ToBgr(this Color color) 
{ 
    return ToBgr(color.R, color.G, color.B); 
} 

public static int ToBgr(int r, int g, int b) 
{ 
    // & 0xFFFFFF -> Strip away alpha channel which powerpoint doesn't like 
    return Color.FromArgb(b, g, r).ToArgb() & 0xFFFFFF; 
} 

utiliser comme ceci:

serie.Border.Color = Color.Red.ToBgr(); 
+0

Microsoft typique ... C API # contient des propriétés RVB BGR ... démence – David

Questions connexes