30 votes

Comment définir Image.Source dans Silverlight (Code derrière)

Je génère dynamiquement une image via code-behind dans Silverlight et, apparemment, la source de l'image n'accepte pas une chaîne ou un Uri comme chemin.

Comment puis-je définir la source?

54voto

Gautam Points 1492

Comment voulez-vous dire qu'il n'acceptera pas une chaîne comme source?

Vous n'êtes pas capable de faire ça?

Ou dites-vous que votre image est en mémoire et que vous ne savez pas comment la référencer?

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

6voto

Malcolm Swaine Points 121
// 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));  

1voto

jpk Points 36

Je devais remplacer les éléments suivants pour que la solution fonctionne:

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

MyNameSpace n'a pas fonctionné pour moi, mais ExecutingAssemblyName a fonctionné, ainsi:

 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"))
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X