2012-06-26 4 views
7

Ich habe ein paar Probleme. Ich habe gerade das Microsoft Ribbon Framework in meine Anwendung implementiert. Jetzt wollte ich ein Icon für einen Button setzen. Also schrieb ich:XamlParseException bei der Einstellung Bild von Ressourcen

<Ribbon:RibbonButton Header="Create Project" LargeImageSource="pack://application:,,,/Resources/document_empty.png" /> 

Aber jedes Mal starte ich die app, ich habe eine „XamlParseException“ in dieser Linie, mit der inneren Ausnahme: „Datei nicht gefunden“.

Warum zur Hölle ist das so? Ich verstehe nicht, warum es das Bild nicht findet. Es ist nur in den Ressourcen der Versammlung platziert. Der Designer zeigt es und der Code wird nicht hervorgehoben, da es ein Syntaxfehler oder etwas ähnliches war ...

Wer hat dieses Problem auch?

Danke!

+0

Was ist, wenn Sie einfach set 'LargeImageSource =" Ressourcen/document_empty.png "'? Die 'pack: // application:' Sachen sollten automatisch erledigt werden. – Clemens

+0

Gleiches Problem. Ich habe versucht "/Resources/document_empty.png" und "/Resources\document_empty.png" nichts funktioniert ... – SharpShade

+1

Hmm, und die Build-Aktion für 'document_empty.png' ist' Ressource'? – Clemens

Antwort

19

Wie Sie nicht genau angegeben haben, nehme ich an, dass Sie den Teil "Properties \ resources.resx" Ihrer Anwendung verwenden? Wenn dies der Fall ist, ist dies nicht der gewünschte Weg für eine WPF-Anwendung.

Sehen Sie diese post on SO

Statt einen Ordner in Ihrer Assembly erstellen, dort Ihre Bilder platzieren und seine Build-Aktion auf Ressourcen.

Siehe Bild: enter image description here

In Ihrem Markup verwenden die packUri:

Pack: // Anwendung: ,,,/images/IMG.jpg

+0

Ah, gut zu wissen. Ja, ich benutze den .resx Teil. Aber selbst wenn ich die Bilder, die automatisch in einem "Resource" -Ordner in der Assembly erstellt werden, zu "Resource" Compile-action ändere, bekomme ich das gleiche Ergebnis ... – SharpShade

+0

Ein Bild hinzugefügt, das es klarer machen sollte; Verwenden Sie nicht den ResX-Teil Ihrer Anwendung. Tipp: Wenn Sie mehr als ein paar Bilder haben, würde ich in Betracht ziehen, eine separate Assembly zu erstellen, in der die Bilder gespeichert sind, und sie von Ihren anderen Assemblies zu referenzieren ... – SvenG

+0

Danke für den Tipp, ich werde das definitiv tun. Aber übrigens ... es funktioniert immer noch nicht. Ich bekomme immer diese ParseException. Das ist mein URI: "" Und noch eine Frage: Wie verlinke ich? zu der anderen Assembly mit einem URI? – SharpShade