2009-04-09 17 views
1

ich bin eine Anwendung zu entwickeln, und ich würde ein Bild laden, die nicht im ClientBin Ordner vorhanden ist, aber in einem Ordner in meinem Server platziert. Ich würde so etwas tun BitmapImage bit = new BitmapImage(); Zeichenfolge Pfad = "c: /image.png"; bit.UriSource = neuer Uri (Pfad, UriKind.Absolute); identity.Source = Bit; aber es funktioniert nicht.Eine Idee? DankBild lädt nicht in xap Silverlight

Antwort

1

Versuchen:

Image.Source = New Imaging.BitmapImage (New Uri ("http://www.Pic.jpg", UriKind.Absolute))

Sie wollen nicht, es in Ihrem Projekt oder aufzunehmen. XAP wird riesig werden.

0

Silverlight-Anwendungen laufen auf dem Client, nicht auf dem Server, so Referenzierung den Weg, wie Sie zu tun hatte wirklich versucht, auf den Pfad auf Client-Rechner Punkt würde die Anwendung ausgeführt wird. Silverlight verfügt aus Sicherheitsgründen jedoch nicht über Lese- oder Schreibrechte für die Festplatte des Clients. Die Ausnahme ist die isolierte Speicherfunktion.

daher Ihre Wahl ist die erste Antwort von Bill zu versuchen, oder ein WebService, die komplexer zu implementieren ist.

ib.

0

Zu Bills Antwort hinzufügen. Sie können serverseitige Ressourcen auch mithilfe der folgenden Hilfsmethode verwenden, die vom Speicherort der xap-Datei abgeleitet ist.

public static string GetUrlForResource(string resourcePage) 
{ 

    var webUrl = Application.Current.Host.Source.ToString(); 
    //Get ClientBin Directory 
    var stub = webUrl.Substring(0, webUrl.LastIndexOf("/")); 
    //Get application root. 
    stub = stub.Substring(0, stub.LastIndexOf("/") + 1); 
    //Append the application root to the resource page. 
    webUrl = stub + resourcePage; 

    return webUrl; 
} 

Um es wie die Antwort von Bill, verwenden Sie die folgenden Schritte aus:

Image.Source = new Imaging.BitmapImage(new Uri(GetUrlForResource("images/myimage.png"), UriKind.Absolute)); 
Verwandte Themen