WPF Static Resource: Der Name (...) ist im Namespace (...) nicht vorhanden

lukaslsm

Cadet 3rd Year
Registriert
Mai 2012
Beiträge
48
Guten Abend!
Ich habe folgendes Problem: Ich habe ein C#-WPF-Projekt in Visual Studio 2012 und möchte für ein Toolbar-Button ein Icon aus einer RESX-Datei laden. Die Toolbar ist im Projekt1, die Resourcendatei im Projekt2 (Projekt2\Resources\GUI.resx). Das Icon ist in der (Public-)Resourcendatei: GUI.resx\OpenButton.png
Code:
[...]
xmlns:ui="Projekt2.Resources"
[...]
<Image Source="{x:Static ui:GUI.OpenButton}"/>
[...]
Jeder Versuch wird mit der Fehlermeldung abgeschmettert:
Der Name "GUI" ist im Namespace "Projekt2.Resources" nicht vorhanden.
Der Verweis auf Projekt2 ist vorhanden. Projektmappe bereinigt und neu erstellt habe ich schon mehrfach.
Warum tritt der Fehler auf?
 
Versuch mal
Code:
xmlns:ui="clr-namespace:Projekt2.Resources"

Falls du vor hast das andere Projekt irgendwann nur noch als Assembly zu referenzieren:
Code:
xmlns:ui="clr-namespace:Projekt2.Resources;;assembly=XYZ"

(XYZ ohne '.dll')


Edit.
Mir fällt grade auf, das sich dir Mist geschrieben habe.
Es muss
Code:
xmlns:ui="clr-namespace:Projekt2.Resources;assembly=XYZ"
sein. Die erste Definition kannst du nur innerhalb von Projekten verwenden.
 
Zuletzt bearbeitet:
Vielen Dank für die schnelle Hilfe ;)
Jetzt wird "GUI" erkannt, dafür erscheint die Fehlermeldung:
Das Element OpenButton wurde nicht erkannt oder es kann nicht darauf zugegriffen werden
Mein Code:
Code:
xmlns:ui="clr-namespace:Projekt2.Resources;assembly=Projekt2"
<Image Source="{x:Static ui:GUI.OpenButton}"/>
Die Resourcendatei ist Public.
Was ist da los...? :freak:
lg Lukas
 
Habe es eben selber probiert. Was du vor hast funktioniert so gar nicht.
Ein Image-Control erwartet eine ImageSource. Wenn du den Weg über die RESX gehst, klappt das ohne Binding + Converter aber nicht. Um es direkt einzubinden, kannst du aber eine Pack-Uri angeben:

Code:
<Image Source="pack://application:,,,/XYZ;component/Resources/Image1.png" />

XYZ wieder mit dem Assembly-Name ersetzen.
 
Zurück
Oben