Cuando trabajamos con Visual Studio/Sharpdevelop, podemos agregar en un pictureBox una imagen. Lo podemos hacer de 2 maneras (a simple vista): como Project Resource file ó Local Resource.

Ahora bien, otra manera de hacer esto, es añadiendo al proyecto las imágenes y declarándolas como Recursos Embebidos, para eso se podría crear una carpeta. Y después para obtener dichas imagenes utilizariamos un helper que nos retorne los recursos embebidos.

Así es como se está realizando el manejo de imágenes/iconos en Paint.Net. También copié el mismo esquema (y código) para Mono.Sms. Lo bueno del esquema que utiliza Paint.Net es que permite tener imágenes personalizadas dependiendo de la cultura:

Cuando Paint.Net necesita una imagen, lo solicita a la clase PdnResources, y esta hace lo siguiente:

  • Verifica si posse una imagen personalizada según la Cultura, si encuentra la devuelve.
  • Sino, busca dentro del assembly por imagenes embebidas, si encuentra la devuelve.

Al momento de buscar una imagen para asignarla a un pictureBox podemos hacer esto:


pictureBox.Image = PdnResources.GetImage("image.png");

El archivo PdnResources puede encontrarse aquí, y la manera que trata los recursos la considero como una buena práctica.

Mono.Sms contiene todas las imágenes embebidas de esta misma manera. Así se ven los recursos de Mono.Sms con Reflector:

 

Tagged with:
 

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>