Vengo de un fondo principalmente web y un poco de Windows Forms. Para un nuevo proyecto, utilizaremos WPF. La aplicación WPF necesitará de 10 a 20 iconos e imágenes pequeños con fines ilustrativos. Estoy pensando en almacenarlos en el ensamblado como recursos integrados. ¿Es ese el camino correcto?
¿Cómo especifico en XAML que un control de imagen debería cargar la imagen desde un recurso incrustado?
fuente
DynamicResource
extensión de marcado en lugar deStaticResource
, suponiendo que conozca las claves en el momento de la compilación. En WPF puede crear diccionarios de recursos en tiempo de ejecución. De hecho, eso es lo que sucede cuando carga un documento Xaml, es solo que no ve el C # equivalente.Width="{Binding Source.PixelWidth, RelativeSource={RelativeSource Self}}"
alImage
, ya que de lo contrario a menudo veo imágenes que se amplían grotescamente por alguna razón (como iconos de 16x16 estirados a algo que parece 200x200 píxeles).Descubrí que la mejor práctica de usar imágenes, videos, etc. es:
Ejemplo
Beneficios:
fuente
Algunas personas preguntan acerca de hacer esto en código y no obtener una respuesta.
Después de pasar muchas horas buscando, encontré un método muy simple, no encontré ningún ejemplo, así que comparto el mío aquí que funciona con imágenes. (el mío era un .gif)
Resumen:
Devuelve un BitmapFrame que parece gustarle a los "destinos" de ImageSource.
Utilizar:
Método:
Aprendizajes:
Según mi experiencia, la cadena del paquete no es el problema, verifique sus transmisiones y, especialmente, si la lee por primera vez ha establecido el puntero al final del archivo y necesita volver a establecerlo en cero antes de volver a leerlo.
¡Espero que esto te ahorre las muchas horas que deseo que esta pieza tuviera para mí!
fuente
En el código para cargar un recurso en el ensamblaje en ejecución donde mi imagen
Freq.png
estaba en la carpetaIcons
y definida comoResource
:También hice una función:
Uso (se supone que coloca la función en una clase ResourceHelper):
Nota : vea los URI del paquete MSDN en WPF :
pack://application:,,,/ReferencedAssembly;component/Subfolder/ResourceFile.xaml
fuente
new Uri(@"pack://application:,,,/" + pathInApplication)
también hizo el truco.Sí, es el camino correcto.
Puede usar la imagen en el archivo de recursos simplemente usando la ruta:
Debe establecer la acción de compilación del archivo de imagen en "Recurso".
fuente
Descripción completa de cómo utilizar los recursos: recursos de aplicaciones, contenido y archivos de datos de WPF
Y cómo hacer referencia a ellos, lea "URI de paquete en WPF".
En resumen, incluso hay medios para hacer referencia a recursos de ensamblados referenciados / referenciados.
fuente
Esto funcionó para mí:
fuente
Si está utilizando Blend , para hacerlo más fácil y no tener problemas para obtener la ruta correcta para el atributo Fuente , simplemente arrastre y suelte la imagen desde el panel Proyecto en el diseñador.
fuente
Sí, es el camino correcto. Puede usar imágenes en el archivo de Recursos usando una ruta:
fuente
Lo siguiente funcionó y las imágenes a configurar son recursos en propiedades:
fuente