带有色带的Visual Studio图像(XML)

Mar*_*lor 4 .net c# xml ribbon visual-studio

我正在制作Office 2007插件,我正在尝试使用XML而不是可视化设计器来自定义功能区但由于某种原因我无法获得使用它的图像...你究竟要做什么?我添加了一个名为Icon1的资源png并尝试了这个:

<?xml version="1.0" encoding="UTF-8"?>
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" onLoad="Ribbon_Load">
      <ribbon startFromScratch="false">
        <tabs>
          <tab id="TabToolss" label="Tools">
            <group id="MyGroup" label="My Group" visible="true">
              <button
                id="Button1"
                image="WordAddIn1.Properties.Resources.Icon1"
                onAction="Button1_Click"
                showImage="true"
                />
            </group>
          </tab>
        </tabs>
      </ribbon>
    </customUI>
Run Code Online (Sandbox Code Playgroud)

没有运气......不知道为什么.即使我把完整的文件路径放在那里它也行不通.

我从来没有让它工作过一次,所以也许我只是不按照它的方式去做...

Mar*_*lor 10

非常复杂的解决方案......幸运地在这里找到它

首先将loadImage属性添加到CustomUI选项卡,

然后为了简化,添加这个内部类

internal class PictureConverter : AxHost
    {
        private PictureConverter() : base(String.Empty) { }

        static public stdole.IPictureDisp ImageToPictureDisp(Image image)
        {
            return (stdole.IPictureDisp)GetIPictureDispFromPicture(image);
        }

        static public stdole.IPictureDisp IconToPictureDisp(Icon icon)
        {
            return ImageToPictureDisp(icon.ToBitmap());
        }

        static public Image PictureDispToImage(stdole.IPictureDisp picture)
        {
            return GetPictureFromIPicture(picture);
        }
    }
Run Code Online (Sandbox Code Playgroud)

接下来添加loadImage函数的定义,

public IPictureDisp Ribbon_LoadImage(string imageName)
        {
            return PictureConverter.ImageToPictureDisp((Bitmap)Resources.ResourceManager.GetObject(imageName));
        }
Run Code Online (Sandbox Code Playgroud)

  • +1谢谢,非常正是我想要的.使用Wordd-Addin尝试它看起来像我不需要PictureConverter - 我可以直接从我的项目资源中成功返回一个Bitmap.鉴于[将位图转换为IPictureDisp]中的信息(http://blogs.msdn.com/b/rgregg/archive/2006/11/27/converting-bitmaps-to-ipicturedisp.aspx)我想知道是否需要PictureConverter仅在Outlook-Addins中. (3认同)