2012-08-14 2 views
41

Ich habe ein WPF-Fenster mit einem Hintergrundbild einer Datei in meinem lokalen System. So sieht die XAML-Datei wie folgt:WPF löst beim Laden des Abbilds die Ausnahme "Ressource nicht finden" aus

<Window.Background> 
    <ImageBrush ImageSource="/MYASSEMBLY;component/Resources/MyPic.png"/> 
</Window.Background> 

Im XAML Designer es tatsächlich zeigt dieses Hintergrundbild, so dass das Bild existiert in MyAssembly \ Ordner Ressourcen. Jedoch in der InitializeComponent() Funktionsaufruf, wenn ich die Anwendung starte, löst es die Ausnahme

Ressource kann nicht gefunden werden "Ressourcen/mypic.png".

So bin ich jetzt total verloren. Unterscheiden sich die Verzeichnisse zwischen dem Design und der Laufzeit, also nicht in der Laufzeitumgebung?

+0

Haben Sie einen Verweis auf die DLL festgelegt? –

+0

Build-Modus des Bildes? (Sehen Sachen im Designer sagt * nichts *) –

+0

Danke @ H.B. Wie ich die Antwort kommentiert habe, habe ich das Bild nicht einmal ins Projekt aufgenommen. Ich denke, der Designer und die Laufzeit, die sich anders verhalten, sind für frische Männer wie mich ein wenig verwirrend. – tete

Antwort

105

In der Lösung entdecken, setzen Sie das Bild „Aktion Build“ Eigenschaft auf „Resource“, dann sauber die Lösung und es wieder aufzubauen.

+0

Danke, das löst das Problem. Ich dachte, es würde das Bild in die Laufzeit laden, also habe ich das Bild nicht einmal in das Projekt eingefügt. – tete

+15

und ja, vergessen Sie nicht zu reinigen und wieder aufzubauen .. wie Buzz sagte .. es ist leicht zu verpassen .. Ich habe :) – invalidusername

+1

hehe, die meisten von uns, einschließlich der OP, hatte nicht wirklich diese Eigenschaft Problem, aber wir haben nicht erwartet, dass das Image im Solution Explorer benötigt wird, wenn es bereits im physischen Verzeichnis vorhanden ist. Es ist ziemlich cool um ehrlich zu sein, dass es im Explorer benötigt wird. Vielen Dank! –

0

WPF löst die Ausnahme "Ressource nicht finden" aus, dieses Problem trat bei der Lokalisierung mit dem Tool locbaml auf, beim Kompilieren erhielt ich diesen Fehler. Es gab viele Ressourcen-Zusammenführungswörterbuch-Referenz. Das Festlegen des Build Action-Eigenschaft der Ressource-XAML-Datei auf "Ressource" von "Seite" hat das Problem behoben.