4 Stimmen

Abrufen des absoluten Dateipfads von einem Bild in WPF

Ich habe etwas Ähnliches in meinem Xaml:

<Grid>
    <Image Name="image" Source="../../Images/DefaultImage.png" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"></Image>
</Grid>

Wie kann ich (mit meinem Code-Behind-C#-Code) den absoluten Pfad der Bildquelle erhalten?

7voto

Jatin Punkte 442

Die Methode, die bei mir jedes Mal funktioniert, ist diese einfache Zeile

(YourImage.Source as BitmapImage).UriSource

Darüber hinaus können Sie mit AbsolutePath oder AbsoluteUri der zurückgegebenen UriSource arbeiten, je nach Bedarf.

5voto

Ray Burns Punkte 60870

Bei der Konvertierung aus einer Uri-Zeichenkette oder einem Dateinamen erstellt der ImageConverter einen BitmapDecoder und extrahiert dessen ersten Frame. Das Abrufen der Uri sollte mit möglich sein:

((BitmapFrame)image.Source).Decoder.ToString()

Beachten Sie, dass dies in der Regel einen absoluten Uri zurückgibt und nicht den ursprünglichen Uri aus der XAML. Wenn Sie die genaue ursprüngliche Uri aus der XAML benötigen, finden Sie diese im _uri-Feld des BitmapDecoders, aber Sie benötigen Reflection und erweiterte Code-Berechtigungen, um darauf zuzugreifen, und Ihr Code funktioniert möglicherweise nicht in zukünftigen NET Framework-Versionen.

3voto

Robin Punkte 992

Versuchen Sie dies:

string path = ((BitmapImage)image.Source).UriSource.AbsolutePath;

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