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:
doGetImageSourceFromResource ("[YourAssemblyNameHere]", "[YourResourceNameHere]");
Método:
static internal ImageSource doGetImageSourceFromResource(string psAssemblyName, string psResourceName)
{
Uri oUri = new Uri("pack://application:,,,/" +psAssemblyName +";component/" +psResourceName, UriKind.RelativeOrAbsolute);
return BitmapFrame.Create(oUri);
}
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í!