Laden...

Source von Image wird nicht gefunden

Erstellt von xbredoillex vor 14 Jahren Letzter Beitrag vor 14 Jahren 8.247 Views
X
xbredoillex Themenstarter:in
46 Beiträge seit 2009
vor 14 Jahren
Source von Image wird nicht gefunden

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

446 Beiträge seit 2004
vor 14 Jahren

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

692 Beiträge seit 2008
vor 14 Jahren

Probier mal bei den Properties des Bildes die Build Action auf Resource zu setzen.

X
xbredoillex Themenstarter:in
46 Beiträge seit 2009
vor 14 Jahren

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.

446 Beiträge seit 2004
vor 14 Jahren

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