Wie bekomme ich einen Uri des in den Ressourcen gespeicherten Bildes?

8

Ich habe zwei .png Dateien zu meinen Ressourcen hinzugefügt, die ich beim Binden auf ihren Uri zugreifen muss.

Mein xaml Code ist wie folgt:

%Vor%

und der binding -Code mit ImagePath ist:

%Vor%

Jedoch

%Vor%

gibt Bitmap anstelle von String zurück und enthält den Uri dieses bestimmten Bildes. Ich möchte nur wissen, wie man diesen Wert extrahiert, ohne einen Pfad des Bildes in dem Verzeichnis ansprechen zu müssen, in dem es gespeichert ist. (Um ehrlich zu sein, ich bin mir nicht sicher, ob das richtig ist, da ich im Internet keine ähnliche Situation finden konnte).

Bitte lassen Sie mich wissen, ob es eine bevorzugte Methode zu der, die ich verwenden möchte, wenn verfügbar gibt.

    
Mehrad 09.04.2014, 07:11
quelle

2 Antworten

19

In einer WPF-Anwendung würden Sie normalerweise keine Bilder in Properties/Resources.resx speichern und mit der Klasse Properties.Resources darauf zugreifen.

Stattdessen fügen Sie die Bilddateien einfach als reguläre Dateien zu Ihrem Visual Studio-Projekt hinzu, möglicherweise in einem Ordner namens "Images" oder dergleichen. Dann würden Sie ihre Build Action auf Resource setzen, was im Eigenschaftenfenster geschieht. Sie kommen dort z.B. indem Sie mit der rechten Maustaste auf die Bilddatei klicken und den Menüpunkt Properties auswählen. Beachten Sie, dass der Standardwert von Build Action trotzdem für Bilddateien Resource sein sollte.

Um auf diese Bildressourcen vom Code aus zuzugreifen, würden Sie dann eine Pack-URI verwenden. Mit dem obigen Ordnernamen "Images" und einer Bilddatei namens "LedGreen.png" würde die Erstellung eines solchen URI wie folgt aussehen:

%Vor%

So könnten Sie vielleicht Ihr Eigentum vom Typ Uri erklären:

%Vor%

und setze es so:

%Vor%

Schließlich sollte Ihr XAML wie unten gezeigt aussehen, was auf einer integrierten Typkonvertierung von Uri nach ImageSource beruht:

%Vor%     
Clemens 09.04.2014, 09:16
quelle
1

Deklarieren Sie die Eigenschaft Properties.Resources.LedGreen als ImageSource und setzen Sie sie auf den Uri-Speicherort und nicht auf das Bitmap-Objekt.

Oder wenn Sie darauf bestehen, es als Bitmap zu speichern, können Sie die Quelle erhalten, indem Sie Properties.Resources.LedGreen.ImageSource vom Typ ImageSource zurückgeben.

Ich würde den ersten Ansatz bevorzugen.

    
CarbineCoder 09.04.2014 07:24
quelle

Tags und Links