2010-11-26 20 views
13

tengo el siguiente fragmento de código (XAML C#):¿Cómo conseguir una imagen desde un archivo de recursos en un menuitem.icon WPF

 <Menu IsMainMenu="True" DockPanel.Dock="Top"> 
      <MenuItem Name="fileMenu" Header="_File" /> 
      <MenuItem Name="editMenu" Header="_Edit" /> 
      <MenuItem Name="setupMenu" Header="_Setup"> 
       <MenuItem Header="_Language"> 
        <MenuItem.Icon> 
         //I want to insert image here 
        </MenuItem.Icon> 
       </MenuItem> 
      </MenuItem> 
      <MenuItem Name="helpMenu" Header="_Help" /> 
     </Menu> 

Y un archivo de recursos images.resx designado que tiene una imagen llamada lang .png. ¿Cómo puedo insertar la imagen como un ícono para el elemento de menú? ¿Hay una manera mejor?

Respuesta

28

Como dijo Jason, es mejor agregar sus imágenes como recursos a su proyecto.

  1. abiertos "Propiedades" para su proyecto
  2. Recursos Selección Vertical-tab
  3. elegir las imágenes en el cuadro combinado izquierda
  4. elegir la opción "Agregar recurso -> Agregar archivo existente ..." en el desplegable a la derecha
  5. localizar la imagen que desea utilizar, por ejemplo, "C1.png" (automáticamente se copia en la carpeta de recursos en la raíz de su proyecto)
  6. Seleccione los alojamientos en la imagen de Recursos recién agregado
  7. En las propiedades, establezca Crear acción en el recurso
  8. Abra el diseñador del archivo .xaml que contiene el menú y agregue una imagen en MenuItem.Icon y luego coloque el cursor sobre la imagen.

xaml

<Menu IsMainMenu="True" DockPanel.Dock="Top"> 
    <MenuItem Name="fileMenu" Header="_File" /> 
    <MenuItem Name="editMenu" Header="_Edit" /> 
    <MenuItem Name="setupMenu" Header="_Setup"> 
     <MenuItem Header="_Language"> 
      <MenuItem.Icon> 
       <Image/> 
      </MenuItem.Icon> 
     </MenuItem> 
    </MenuItem> 
    <MenuItem Name="helpMenu" Header="_Help" /> 
</Menu> 

De propiedades ahora puede seleccionar el símbolo alt text sobre la propiedad fuente y todos los recursos de imagen disponibles se mostrarán.

alt text

Desde este cuadro de diálogo también se puede elegir la opción "Añadir", busque un archivo de imagen en el disco y todos los pasos anteriores se hará para usted por Visual Studio.

alt text

el URI resultante para el Image.Source en XAML se verá algo como esto (que por supuesto también se puede añadir a mano)

<Menu IsMainMenu="True" DockPanel.Dock="Top"> 
    <MenuItem Name="fileMenu" Header="_File" /> 
    <MenuItem Name="editMenu" Header="_Edit" /> 
    <MenuItem Name="setupMenu" Header="_Setup"> 
     <MenuItem Header="_Language"> 
      <MenuItem.Icon> 
       <Image Source="/MenuIconImage;component/Resources/C1.png" /> 
      </MenuItem.Icon> 
     </MenuItem> 
    </MenuItem> 
    <MenuItem Name="helpMenu" Header="_Help" /> 
</Menu> 
+0

¡Gracias a ambos! ¡lo tengo! –

1

Usted podría agregar esto, al Menu.Icon.

<Image> 
    <Image.Source> 
    <BitmapImage UriSource="/ASSEMBLYNAME;component/PATH/IMAGE.png" /> 
    </Image.Source> 
<Image> 
+0

Cuál es el camino? el nombre del archivo de recursos? o el directorio de recursos? –

+0

Disculpe, no expliqué mejor. Creo que la mejor manera es no colocar las imágenes en el archivo RESX y simplemente agregarlas a su proyecto como recursos. Esto te permitirá usar el código de arriba. – Jason

Cuestiones relacionadas