Интеграция C # и Powerpoint: проблема определения цвета - PullRequest
3 голосов
/ 06 мая 2011

Я использую Microsoft.Office.Interop.PowerPoint для генерации файлов powerpoint из приложения C #.
Я нахожусь на Office 2007 с пакетом обновления 2 (SP2).

Я генерирую диаграммы и хочу что-то определить цвета моей сериикак это:

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

и я делаю это разными цветами.

Моя проблема в том, что при создании слайдов цвета не совпадают: когда я определяю серию в красном, он нарисован синим цветом, а синий - красным.(Зеленый остается зеленым).

Разве ToArgb() не является методом, который нужно использовать, когда я хочу отправить цвет в powerpoint?
Нужно ли использовать другой метод из типа Color,или есть ручное преобразование, чтобы сделать?

Ответы [ 2 ]

3 голосов
/ 06 мая 2011

Я столкнулся с той же проблемой несколько лет назад.Это действительно странно, и я не смог найти никакой документации по этому поводу, но в основном красный и синий смешаны.

Тогда я написал следующие методы:

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;
}

Используйте это какэто:

serie.Border.Color = Color.Red.ToBgr(); 
0 голосов
/ 03 октября 2013

Я столкнулся с той же проблемой и нашел рабочее решение.Я разместил ответ в этой ссылке, который может быть полезен, если у кого-то все еще есть проблемы.

https://stackoverflow.com/a/18794046/2752556

...