2009-02-23 8 views
30

Genero dinámicamente una imagen a través de código subyacente en Silverlight y aparentemente la fuente de la imagen no acepta una cadena o Uri como ruta.¿Cómo se establece Image.Source en Silverlight (código detrás)

¿Cómo puedo configurar la fuente?

+0

Este Me tomó un poco de tiempo averiguarlo también. La respuesta de Guantam se parece a lo que yo usé. – BenMaddox

+0

Tuve que cambiarlo un poco sin embargo, funcionó sin incluir el espacio de nombres en la ruta – Drahcir

Respuesta

53

¿Qué quieres decir con que no aceptará una cadena como fuente?

¿No puede hacer esto?

¿O está diciendo que su imagen está en la memoria y que no sabe cómo hacer referencia a ella?

this.MyImage.Source = new BitmapImage(new Uri("/MyNameSpace;images/someimage.png", UriKind.Relative)); 
+1

No acepta cadena me refiero, por ejemplo: MyImage.Source = "/MyNameSpace;images/someimage.png" como en asp.net – Drahcir

+0

ah, necesitaba eso! – Michel

+4

mi proyecto necesita agregar "componentes": this.MyImage.Source = new BitmapImage (new Uri ("/ MyNameSpace; components/images/someimage.png", UriKind.Relative)); – Raptor

6
// create a new image 
Image image = new Image(); 

// better to keep this in a global config singleton 
string hostName = Application.Current.Host.Source.Host;     
if (Application.Current.Host.Source.Port != 80) 
    hostName += ":" + Application.Current.Host.Source.Port; 

// set the image source 
image.Source = new BitmapImage(new Uri("http://" + hostName + "/image111.jpg", UriKind.Absolute)); 
+0

sin necesidad de ir para el protocolo HTTP. solo use el recurso local está bien. – Raptor

1

que necesitaba para reemplazar la siguiente para obtener la solución de trabajo:

this.MyImage.Source = new BitmapImage(new Uri("/MyNameSpace;components/images/someimage.png", UriKind.Relative)); 

MiNombreEspacio no funcionó para mí, pero el ExecutingAssemblyName lo hicieron, por lo que:

Dim tmp As String() = Assembly.GetExecutingAssembly.FullName.Split(","c) 
Dim path As String = "/" & tmp(0) & ";component/images/" 
MyImage.Source = new BitmapImage(new Uri(path & "someImage.png")) 
Cuestiones relacionadas