Welcome to MSDN Blogs Sign in | Join | Help

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).

Published Friday, July 18, 2008 1:10 PM by jensha

Comment Notification

If you would like to receive an email when updates are made to this post, please register here

Subscribe to this post's comments using RSS

Comments

# Pregnant Man &raquo; RibbonX kennt .NET Images

Friday, July 18, 2008 7:39 AM by Pregnant Man &raquo; RibbonX kennt .NET Images

Leave a Comment

(required) 
required 
(required) 
 
Page view tracker