Hallo,
beim Versuch ein Icon aus einem Projektverzeichnis zu laden bekomme ich die Fehlermeldung:
System.Windows.Markup.XamlParseException: Die Zeichenfolge "/Images/TestIconDark.png" im Attribut "Source" kann nicht in ein Objekt vom Typ "System.Windows.Media.ImageSource" konvertiert werden. Die Ressource "images/testicondark.png" kann nicht gefunden werden. Fehler in Objekt "System.Windows.DataTemplate" in Markupdatei "WPFTest;component/TestResources.xaml", Zeile 13, Position 14. ---> System.IO.IOException: Die Ressource "images/testicondark.png" kann nicht gefunden werden.
Das Image ist in einer ResourceDictionary wie folgt eingebettet:
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" ...>
<DataTemplate ... >
<StackPanel ... >
<Image x:Name="DarkIcon" Source="/Images/TestIconDark.png" />
[...]
Das Verzeichnis "Images" befindet sich im Projektordner genau dort, wo die anderen Dateien wie z.B. "WPFTest.csproj" oder "Window1.xaml" liegen. Das png ist definitiv im Verzeichnis drin und die Namen stimmen auch alle. Das Verzeichnis habe in das Projekt mit "Hinzufügen -> Verzeichnis" eingebunden.
Versucht habe ich, unter anderem, die png-Datei direkt ins Debug/Bin-Verzeichnis zu legen. Auch mit den relativen Pfadangaben habe ich gespielt (../, ohne /, mit/ vor Images etc). Leider kommt immer die gleiche Fehlermeldung, nur dass sich dort die Meldung entsprechend meiner Eingabe bei Source ändert.
Das seltsame ist, ich habe als Vorlage zu meinem Code den Code eines Demoprojekts genommen. Dort funktioniert es mit gleicher Verzeichnisstruktur und den gleichen Angaben im Code ohne Probleme.
Wo könnte das Problem liegen bzw. wie könnte ich weiter vorgehen?
Gruß
xbredoillex
Probier mal folgendes:
im bin Verzeichnis ein Ordner namens Images erstellen. Da machst du dein Bild rein.
Hast du das auch schon probiert?
//Wenn du den kompletten Pfad zum Bild angibst, sollte es auf jeden Fall
//funktionieren. Aber das wirst du wohl so nicht wollen.
Ich mach das immer so. Im Solution Explorer einen Ordner images erstellen. Da füge ich dann meine Bilder hinzu.
Rechter Mausklick auf das Bild im Solution Explorer Eigenschaften.
In Ausgabeverzeichnis kopieren : Kopieren wenn neuer.
lg
Schaut mal im IRC vorbei:
Server: https://libera.chat/ ##chsarp
Probier mal bei den Properties des Bildes die Build Action auf Resource zu setzen.
Hi,
wenn ich das Images Verzeichnis in bin einfüge, kopiert es mir dann beim Einfügen in den Projektesplorer das Verzeichis zusätzlich automatisch in das Projektverzeichnis und setzt das als Referenz. Aber die Bilder werden immer noch nicht gefunden.
[EDIT]
Quaneu:
Probier mal bei den Properties des Bildes die Build Action auf Resource zu setzen.
Das war das ganze Problem, jetzt gehts.
Muss man das immer machen? Ich habe das noch nirgends gelesen.
Nochmals Danke an alle.
Damit kannst du Vs.NET sagen, wie er die File behandeln soll. Wenn du die Build Action auf Resource setzt, wird das Bild in die Assembly eingefügt.
Ist der BuildAction auf Content wird die Datei als lose File behandelt.
Schaut mal im IRC vorbei:
Server: https://libera.chat/ ##chsarp