Imágenes como recursos en los assemblies
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:

-
Categories
- .NET
- ActiveRecord
- agil
- Alt.Net
- AOP
- Asp.net MVC
- blog
- C#
- codegeneration
- cosas interesantes
- db4o
- db4o-analyzer
- DLR
- enterprise-library
- expresiones regulares
- General
- Hibernate
- IoC
- it
- Java
- LINQ
- Linux
- Lucene
- Mocking
- Mono
- monosms
- MVC
- NAnt
- NHibernate
- NHibernate.Burrow
- NHibernate.Contrib
- NHibernate.Validator
- noticias
- O/R Mapping
- Open Source
- patrones
- personal
- podcast
- programación
- Redes Neuronales
- Refactoring
- regex
- Scrum
- Security
- Shards
- Sin Categoría
- Spring
- SqlServer
- Testing
- tips
- Tool
- tutorial
- Ubuntu
- uNHAddIns
- video
- Virtualización
- Visual Basic.Net
- Visual Studio
- VMWare
- Web
-
Articles
- June 2011
- May 2011
- November 2009
- October 2009
- April 2009
- March 2009
- February 2009
- October 2008
- September 2008
- August 2008
- July 2008
- June 2008
- May 2008
- April 2008
- March 2008
- February 2008
- January 2008
- December 2007
- November 2007
- October 2007
- September 2007
- August 2007
- June 2007
- May 2007
- April 2007
- March 2007
- February 2007
- January 2007
- December 2006
- November 2006
- October 2006
- September 2006
- August 2006
- March 2006
- February 2006
- December 2005
- November 2005
- October 2005
-
Meta




