【问题标题】:To fill shape with color in power point interop在 powerpoint 互操作中用颜色填充形状
【发布时间】:2014-10-07 16:28:02
【问题描述】:

当我运行下面的代码时,我想在我的形状中填充 (255,168,0) 颜色,它给了我一点浅蓝色的颜色。

   private void Shape_fill_Click(object sender, RibbonControlEventArgs e)
    {
        Color_palette.Visible = true;
         type = "Fill";           
    }

    private void btn_Orange_Click(object sender, RibbonControlEventArgs e)
    {
        if(type=="Fill")
        { 
        PowerPoint.Application ppApp = Globals.ThisAddIn.Application;
        PowerPoint.ShapeRange ppshr = ppApp.ActiveWindow.Selection.ShapeRange;
        ppshr.Fill.ForeColor.RGB = System.Drawing.Color.FromArgb(255,168,0).ToArgb(); 
        }

问题:除了浅蓝色之外,我怎样才能获得不同或不同的颜色?

【问题讨论】:

  • 您的问题是什么?如果您需要了解颜色代码,请尝试此链接:rapidtables.com/web/color/RGB_Color.htm
  • 以上是我用来填充形状的代码。我知道颜色代码,我尝试在上面的代码中使用这个 RGB(255,168,0),它应该是橙色的,但是在上面的电源点的情况下它不起作用。它给了我更浅的蓝色阴影。
  • 我理解它的假设是互操作的倒退。所以这是; BGR(0, 168, 255)。
  • "interop 将其读取为 BGR 而不是 RGB"

标签: c# visual-studio-2013 add-in visual-studio-addins powerpoint-2013


【解决方案1】:

这里颜色 RGB 以 BGR 格式给出,因为互操作将其读取为 BGR 而不是 RGB

private void btn_Orange_Click(object sender, RibbonControlEventArgs e)
{
    if(type=="Fill")
    {  
       PowerPoint.Application ppApp = Globals.ThisAddIn.Application;
            PowerPoint.ShapeRange ppshr = ppApp.ActiveWindow.Selection.ShapeRange;
            // here the color RGB is given in format of BGR because interop reads it as BGR and not RGB

            ppshr.Fill.ForeColor.RGB =System.Drawing.Color.FromArgb(0,168,255).ToArgb();
       }
 }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-13
    相关资源
    最近更新 更多