3 Stimmen

Silverlight Bild laden

Ich bin ein Anfänger, der gerade anfängt, mit Silverlight zu arbeiten und habe eine sehr grundlegende Frage. Ich möchte ein .png Bild anzeigen. Ich habe es bereits in der page.xaml-Datei getan, aber ich würde es gerne im Code (C#) tun, so dass ich Bilder hinzufügen und entfernen kann, während mein Programm läuft. Ich habe einige Codes gesehen, in denen Sie ein Bild zu den Kindern eines Canvas hinzufügen, aber wenn ich dies tue, werden keine Bilder jemals angezeigt. Kann mir jemand einen Code nennen und sagen, wo ich ihn einfügen kann? Hier ist, womit ich gearbeitet habe. Es gibt keine Ausnahmen, aber es wird kein Bild angezeigt.

page.myCanvas.Children.Add(LoadImage("Image/MrBlue"));

public Image LoadImage(string resource)
    {

        Image img = new Image();

        Uri uri = new Uri(resource, UriKind.Relative);

        ImageSource imgSrc = new System.Windows.Media.Imaging.BitmapImage(uri);

        img.SetValue(Image.SourceProperty, imgSrc);

        return img;

    }

Das Bild ist auf "Ressource" und "Nicht kopieren" eingestellt.

1voto

Raumornie Punkte 1444

Debugging Silverlight kann ein Schmerz sein, obwohl es durchaus möglich ist, in VS2008 (die Sie bereits getan haben könnte. Wenn Sie nicht haben, fühlen Sie sich frei zu fragen ...) und das kann einige der "einfachen" Fehler wie mit der falschen Uri für das Bild, das Sie wollen fangen. Ihr Code sieht für mich gut aus, auch wenn das, was ich verwende, etwas anders ist. Wenn du ein Beispiel aus einer funktionierenden Anwendung möchtest, die Funktion, die ich zum Laden von Bildern verwende, ist:

public void ShowPicture(Uri location)
        {
            Image pic = new Image();
            pic.Source = new BitmapImage(location);
            Grid.SetColumn(pic, 1);
            Grid.SetRow(pic, 1);
            LayoutRoot.Children.Add(pic);
        }

Beachten Sie, dass ich eine using-Anweisung habe, die Folgendes enthält System.Windows.Media.Imaging .

Auch ohne vollständiges Debugging könnte ein Dienstprogramm wie fiddler, das die http-Anfragen anzeigt, dabei helfen, schlechte Uris im Code aufzuspüren, was alles ist, was mir hier einfällt. Hoffentlich hilft es.

0voto

Ola Karlsson Punkte 8511

Ich habe Ihren Code getestet, und bei mir funktioniert er einwandfrei. Wie Raumornie bereits angedeutet hat, scheint es also höchstwahrscheinlich ein Problem mit dem Pfad zum Bild zu sein. Befindet sich die Bilddatei laut Ihrem Code in einem Ordner mit dem Namen Image in Ihrem Silverlight-Projekt und heißt nur MrBlue? Bei einem kurzen Blick scheint das .png zu fehlen, oder?

Viel Glück!

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X