【问题标题】:C# and Powerpoint integration : problem defining colorsC# 和 Powerpoint 集成:定义颜色的问题
【发布时间】:2013-10-04 01:41:28
【问题描述】:

我使用Microsoft.Office.Interop.PowerPoint 从 C# 应用程序生成 powerpoint 文件。
我使用的是 Office 2007 SP2。

我生成图表,我想用这样的方式定义我的系列的颜色:

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

我用不同的颜色来做这个。

我的问题是,当幻灯片生成时,颜色不一样:当我用红色定义一个系列时,它是用蓝色绘制的,而蓝色是用红色渲染的。 (绿色保持绿色)。

ToArgb() 不是我想向 powerpoint 发送颜色时使用的方法吗?
我必须使用 Color 类型中的其他方法,还是需要手动转换?

【问题讨论】:

    标签: c# powerpoint office-interop


    【解决方案1】:

    几年前我遇到了同样的问题。这真的很奇怪,我找不到任何关于它的文档,但基本上,红色和蓝色是混合的。

    当时,我写了这些方法:

    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(); 
    

    【讨论】:

    • 典型的 Microsoft ... C# API 包含属性 RGB 而不是 BGR ... 痴呆
    【解决方案2】:

    我遇到了同样的问题并想出了一个可行的解决方案。我已在此链接中发布了答案,如果有人仍然遇到问题,这可能会有所帮助。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-11
      • 1970-01-01
      • 2013-06-17
      相关资源
      最近更新 更多