Frage

Hintergrund:Ich entwickle ein Outlook 2007-Add-In in VS2010 in C#.Das Besondere, was ich tue, ist das Hinzufügen eines Menüelements zum Kontextmenü, das mit einer E-Mail verknüpft ist.Ich mache das mit folgendem Code:

private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
   Application.ItemContextMenuDisplay += Application_ItemContextMenuDisplay;
}

private void ThisAddIn_Shutdown(object sender, System.EventArgs e)
{
}

private void Application_ItemContextMenuDisplay(Office.CommandBar commandBar, Outlook.Selection selection)
{
   var cmdButtonCallContact = (Office.CommandBarButton)commandBar.Controls.Add(Office.MsoControlType.msoControlButton, 1, System.Reflection.Missing.Value, 6, System.Reflection.Missing.Value);

   cmdButtonCallContact.Caption = "&Foo";
   //cmdButtonCallContact.Picture = ?
   cmdButtonCallContact.Click += cmdButtonCopy_Click;
}

private void cmdButtonCopy_Click(Office.CommandBarButton ctrl, ref bool canceldefault)
{
   System.Windows.Forms.MessageBox.Show("Bar");
}

Problem:Ich kann das Bild scheinbar nicht einstellen.Msdn-Beispiele basieren auf AxHost-Konvertierungsfunktionen, die ich nicht habe.Gibt es eine einfache Möglichkeit, ein Bild oder eine BitMap einfach auf „Bild“ zu setzen?

Danke.

War es hilfreich?

Lösung

Wenn Sie ein benutzerdefiniertes Bild wünschen, müssen Sie sich auf den generationspflichtigen Ansatz von AxHost verlassen ( siehe MSDN-Referenz ) oder PictureDispConverter , was ein anderer Ansatz ist Erstellt von Microsoft basierend auf OleCreatePictureIndirect .

Wenn Sie die eingebauten Symbole verwenden möchten, können Sie einfach den FaceId einstellen.Laden Sie Office-Icons-Galerie an, um Office 2007 generationalaDicetagcode-Werte anzuzeigen.

Andere Tipps

Der folgende Code verwendet einen generakodicetagcode (als Ressource gespeichert) und wandelt sie in ein Bild um, das dem generationspflichtigen GROSSACDICETAGCODE

zuordenbar ist. generasacodicetagpre.

Hinweis: Fügen Sie ein Bild mit dem Namen Symbol1 in Ressource hinzu.

Nur zu Ihrer Information: Wenn Sie in Office integrierte Bilder auf Ihre Schaltfläche anwenden möchten (sehen Sie sich die Bildergalerie an). Hier), können Sie einfach anrufen GetImageMso() Methode.

CommandBarButton.Picture = Application.CommandBars.GetImageMso("ImageMSO", 16, 16);

Dies ist ein alternativer Ansatz zur Verwendung FaceID Eigentum.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top