Chris Morrison
2003-12-10 16:25:02 UTC
Hi all,
I am writing an Add-In for Visual Studio.NET using C#.
My Add-In adds items to the Edit menu and creates it's own toolbar. Each
command has it's own bitmap icon.
I have given each bitmap a magenta background and I am creating the images
in my code using:
System.Drawing.Bitmap MyToolbarPic = new
System.Drawing.Bitmap("C:\\Pictures\\picture.bmp");
MyToolbarPic.MakeTransparent(Color.FromArgb(255, 0, 255));
I am then adding the icon to my toolbar button using
MyCommandBarButton.Picture = ImageConverter.ImageToIPicture(MyToolbarPic);
// The Picture property requires an IPictureDisp object.
The definition of the ImageConverter Class is:
public class ImageConverter : System.Windows.Forms.AxHost
{
public ImageConverter() : base("59EE46BA-677D-4d20-BF10-8D8067CB8B33")
{
}
public static stdole.IPictureDisp ImageToIPicture(System.Drawing.Image
image)
{
return
(stdole.IPictureDisp)ImageConverter.GetIPictureDispFromPicture(image);
}
public static System.Drawing.Image IPictureToImage(stdole.IPictureDisp
picture)
{
return ImageConverter.GetPictureFromIPicture(picture);
}
}
However, instead of being drawn with a transparent background, the icons are
drawn with a blue background.
Any ideas anyone?
Chris
I am writing an Add-In for Visual Studio.NET using C#.
My Add-In adds items to the Edit menu and creates it's own toolbar. Each
command has it's own bitmap icon.
I have given each bitmap a magenta background and I am creating the images
in my code using:
System.Drawing.Bitmap MyToolbarPic = new
System.Drawing.Bitmap("C:\\Pictures\\picture.bmp");
MyToolbarPic.MakeTransparent(Color.FromArgb(255, 0, 255));
I am then adding the icon to my toolbar button using
MyCommandBarButton.Picture = ImageConverter.ImageToIPicture(MyToolbarPic);
// The Picture property requires an IPictureDisp object.
The definition of the ImageConverter Class is:
public class ImageConverter : System.Windows.Forms.AxHost
{
public ImageConverter() : base("59EE46BA-677D-4d20-BF10-8D8067CB8B33")
{
}
public static stdole.IPictureDisp ImageToIPicture(System.Drawing.Image
image)
{
return
(stdole.IPictureDisp)ImageConverter.GetIPictureDispFromPicture(image);
}
public static System.Drawing.Image IPictureToImage(stdole.IPictureDisp
picture)
{
return ImageConverter.GetPictureFromIPicture(picture);
}
}
However, instead of being drawn with a transparent background, the icons are
drawn with a blue background.
Any ideas anyone?
Chris