2008-08-27 9 views

Respuesta

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

Esto nos ayudó muchísimo. Primero tuvimos que crear una imagen, luego asignar la fuente de esa imagen a BitMapImage, luego establecer menuItem.Icon = Objeto de imagen, pero funcionó. – ScottG

+6

Como dice @Scott, al código de ejemplo le falta un detalle crucial: 'menutItem.Icon = new System.Windows.Controls.Image {Source = new BitmapImage (new Uri (" images/sample.png ", UriKind.Relative)) }; ' – Neil

+1

He editado la respuesta para que los nuevos visitantes de esta pregunta obtengan un código de trabajo en caso de que pierdan esta cadena de comentarios –

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

Sólo asegúrese de que su imagen en el también se incluye en el archivo de proyecto y se marca como recurso, y que son buenos para ir :)

+3

La pregunta original era para el código de procedimiento. Además, creo que en XAML podría escribir '' dentro de '' – Neil

+1

+1 para mostrar el camino correcto ... XAML camino ... para hacerlo. @Neil, +1 para usted y yo editamos su sugerencia, ya que esa es la forma correcta de hacerlo –

+3

El hecho de que se haga en XAML no necesariamente lo hace de la manera correcta. –

0

Esto es como lo he usado (de esta manera, no vale necesita ser incorporado en el montaje): respuesta

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

de Arcturus es bueno porque significa que tiene el archivo de imagen en su proyecto en lugar de una carpeta independiente.

Por lo tanto, en el código que se convierte ...

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

También puede utilizar Visual Studio para insertar un icono. Esta es la forma más fácil

  • clic derecho en que proyecto en el explorador de soluciones
  • eligieron Propiedades
  • Asegúrese de que está en la página de la aplicación.
  • @ recursos que ves: Icono y manifiesto
  • @ Icono: haz clic en examinar y selecciona tu ícono.

Problema resuelto.

+2

Esto funciona para WinForms. La pregunta era cómo configurarlo manualmente desde el código. – alexandrudicu

0

Para aquellos de ustedes utilizando vb.net, para ello es necesario utilizar esto: menuItem.Icon = New Image() With {.Source = New BitmapImage(New Uri("pack://application:,,,/your_assembly;component/yourpath/Image.png"))}

2

Esto es un poco más corto: D

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

Esto es lo que funcionó para mí

<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> 
Cuestiones relacionadas