Issues with the grayscale image generated by Visual Studio for disabled commandbar buttons
I am now investigating why the grayscale image that Visual Studio 2005 / 2008 generates for a
disabled button is so
horrible/blurry for pictures of add-in commands and so crisp and
precise for pictures of VS commands. VS 2005 introduced True Color
bitmaps (VS.NET 2003 used 16-color bitmaps) so it should be able to
generate good-looking grayscale images as it does with its own pictures
(if I am correct that the disabled image is autogenerated and not
provided separately through some way not available to add-ins). There are two scenarios where disabled buttons
look bad:
- CommandBarButtons created from a command (via
Command.AddControl). In this case the image of the button is actually the image of the command which in turn is supplied in a satellite
dll in True Color (24 bit) bitmap format, so there is no much room to play...
- CommandBarButtons created on a CommandBar created by the
add-in to be used as context menu somewhere, for example in the context menu of a list (New, Remove, etc.). The add-in creates a VS
commandbar rather than a .NET context menu to provide the same look and
feel. In this scenario, there is no command, the CommandBarButton is
created via CommandBar.Controls.Add. When you cast the
returned CommandBarControl to CommandBarButton you can use the Picture
and Mask properties (COM IPictureDisp type) to set the image and the transparency mask, so
there is much more room to play with the bitmap format, the color depth
(32-bit, 24-bit, 8-bit), and how you get a COM IPictureDisp from a managed System.Drawing.Bitmap.
So far I have been unable to solve this, I will post again if I find a resolution for this issue. If someone know the solution, let me know.