2014-09-07 21 views
12

Ich habe WinForms vor kurzem selbst unterrichtet, aber ich habe jetzt zu den moderneren WPF gewechselt, die SOOO viel besser ist!WPF - Import Bild als Ressource

Einzige Sache, die ich im Moment verwirrt bin, ist die Verwendung von Bildern. Jetzt haben Sie es in WinForms als Ressource importiert und das Bild würde immer noch funktionieren, wenn es im Ordner/bin/Debug kompiliert wird. in

Ich kann nicht herausfinden, wie diese Arbeit in WPF zu bekommen, wenn ich die Anwendung das Bild läuft nicht geladen werden, da das Bild in /Projects/AppName/images/ gespeichert wird, und die Anwendung in /Projects/AppName/bin/Debug kompiliert wird, wenn ich es laufen Debug-Modus.

Muss ich einfach eine Kopie meines Images-Ordners erstellen und dort ablegen, wo die Anwendung kompiliert wird? Oder gibt es einen anderen Weg. Hier ist mein Code, die mein Bild zeigt:

<Image Width="300"> 
    <Image.Source> 
     <BitmapImage DecodePixelWidth="300" UriSource="/images/jamsnaps-dark.png" /> 
    </Image.Source> 
</Image> 

Antwort

23
  • Erstellen Sie einen Ordner (zB images) in Ihrem Visual Studio-Projekt.
  • Fügen Sie die Bilddatei (en) in diesem Ordner.
  • Stellen ihres Build Action-Resource (im Fenster Eigenschaften, zweites Bild in this answer sehen).

schreiben dann die UriSource Eigenschaft wie Sie bereits getan:

UriSource="/images/jamsnaps-dark.png" 

Das URI ist effektiv ein Resource File Pack URI, wo das Präfix automatisch von WPF hinzugefügt wird.

+0

Danke, funktioniert super –

1

zwei Optionen:

1) Gehen Sie aus bin/Debug und in Ihrem Anwendungsordner von ../../ und dann zu Ihrem Bild.

<Image> 
     <Image.Source> 
      <BitmapImage UriSource="../../images/jamsnaps-dark.png" /> 
     </Image.Source> 
    </Image> 

2) Stellen Sie Ihre Bilder als Inhalt von Eigenschaften im Kontextmenü auf die Bilddatei, und dann kompiliert, wenn sie in gewesen Debug platziert werden würde. Ich erinnere mich nicht, wenn Sie sie auch brauchen, um zu sagen in Eigenschaften lokal auch zu kopieren (ich bin nicht in der Nähe von einem Computer im Moment, so kann ich nicht überprüfen.

+0

Prost, auch gearbeitet, aber andere antwortete ein bisschen besser erklärt :) –

+0

Er tat etwas anderes. was auch gut ist. Der Punkt davon ist zu wissen, wo Sie Ihre Dateien finden, können sie als Ressourcen/Inhalte eingehalten werden oder nur in Ihrer Lösung platziert werden. Ich erinnere mich nicht an die Vor- und Nachteile jeder Methode .. –