2008-08-27 14 views

Antwort

51
menutItem.Icon = new System.Windows.Controls.Image 
     { 
      Source = new BitmapImage(new Uri("images/sample.png", UriKind.Relative)) 
     }; 
+0

Das hat uns enorm geholfen. Wir mussten zuerst ein Image erstellen, dann die Quelle dieses Image der BitMapImage zuweisen und dann menuItem.Icon = Image-Objekt, aber es funktionierte. – ScottG

+6

Wie @Scott angibt, fehlt dem Beispielcode ein entscheidendes Detail: 'menutItem.Icon = new System.Windows.Controls.Image {Source = neues BitmapImage (neues Uri (" images/sample.png ", UriKind.Relative)) }; ' – Neil

+1

Ich bearbeitet die Antwort, so dass neue Besucher auf diese Frage funktioniert Code für den Fall, dass sie diesen Kommentar Thread –

22
<MenuItem> 
    <MenuItem.Icon> 
    <Image> 
     <Image.Source> 
     <BitmapImage UriSource="/your_assembly;component/your_path_here/Image.png" /> 
     </Image.Source> 
    </Image> 
    </MenuItem.Icon> 
</MenuItem> 

So stellen Sie sicher, dass Ihr Bild in auch in der Projektdatei enthalten und als Ressource markiert, und Sie sind gut zu gehen :)

+3

Original-Frage war für Verfahrenscode. Ich glaube auch an XAML, dass Sie '' innerhalb der '' – Neil

+1

+1 schreiben können, um den richtigen Weg zu zeigen ... XAML Weg ... um es zu tun. @Neil, +1 an Sie und ich bearbeitet zu Ihrem Vorschlag, wie das ist der richtige Weg, es zu tun –

+3

Nur weil es in XAML getan wird, macht es nicht unbedingt den richtigen Weg. –

0

Dies ist, wie ich es verwendet (so es nicht werden müssen, in die Baugruppe eingebaut):

MenuItem item = new MenuItem(); 
string imagePath = "D:\\Images\\Icon.png"); 
Image icon = new Image(); 
icon.Source= new BitmapImage(new Uri(imagePath, UriKind.Absolute)); 
item.Icon = icon; 
15

Arcturus Antwort ist gut, weil es bedeutet, dass Sie die Bilddatei in Ihrem Projekt und nicht als unabhängige Ordner.

in Code So, das wird ...

menutItem.Icon = new Image 
     { 
     Source = new BitmapImage(new Uri("pack://application:,,,/your_assembly;component/yourpath/Image.png")) 
     } 
-5

Sie können auch Ihr Visual Studio verwenden, um ein Symbol einzufügen. Dies ist der einfachste Weg,

  • Rechtsklick auf Sie in der Lösung Explorer Project
  • Eigenschaften wählte
  • Stellen Sie sicher, dass in der Anwendungsseite sind.
  • @ recources Sie sehen: Icon und Manifest
  • @ Icon: Klicken Sie auf Durchsuchen und wählen Sie Ihr Symbol.

Problem gelöst.

+2

Dies funktioniert für WinForms. Die Frage war, wie man es manuell aus dem Code einstellt. – alexandrudicu

0

Für die von Ihnen vb.net verwenden, das Sie diese verwenden müssen zu tun: menuItem.Icon = New Image() With {.Source = New BitmapImage(New Uri("pack://application:,,,/your_assembly;component/yourpath/Image.png"))}

2

Das ist ein bisschen kürzer: D

<MenuItem Header="Example"> 
    <MenuItem.Icon> 
     <Image Source="pack://siteoforigin:,,,/Resources/Example.png"/> 
    </MenuItem.Icon> 
</MenuItem> 
1

Dies ist, was für mich

gearbeitet
<MenuItem Header="delete ctrl-d" Click="cmiDelete_Click"> 
    <MenuItem.Icon> 
     <Image> 
      <Image.Source> 
       <ImageSource>Resources/Images/delete.png</ImageSource> 
      </Image.Source> 
     </Image> 
    </MenuItem.Icon> 
</MenuItem>