RibbonX kennt .NET Images
Das ist irgendwie total an mir vorbei gegangen. Während in der Beta (VS 2008 Office Integration) bei dynamisch befüllten Ribbon Controls:
<dropDown id="MyDropDown"
getItemID="getDDItemID"
getItemCount="getDDItemCount"
getItemLabel="getDDItemLabel"
getItemImage="getDDItemImage"
onAction="onDDAction">
</dropDown>
immer noch die Images als COM Struktur IPictureDisp übergeben:
public stdole.IPictureDisp getDDItemImage(Office.IRibbonControl control, int index)
{
MemoryStream iconStream = new MemoryStream(...);
return ImageConverter.ImageToPictureDisp(Image.FromStream(iconStream));
}
und dann datürlich eine Umwandlungsroutine geschrieben werden mußte, die Image in IPictureDisp konvertiert:
internal class ImageConverter : System.Windows.Forms.AxHost
{
public ImageConverter() : 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());
}
}
kann jetzt das Image direkt übergeben werden:
public Image getDDItemImage(Office.IRibbonControl control, int index)
{
MemoryStream iconStream = new MemoryStream(...);
return Image.FromStream(iconStream);
}
Leider geht das nicht mit Icons. Also wer schön freigestellte Icons verwendet, wird nach wie vor die Umwandlungsroutine nutzen müssen (Was nicht wirklich viel mehr Aufwand darstellt).
Comments
- Anonymous
July 17, 2008
PingBack from http://wordnew.acne-reveiw.info/?p=10310