2017-06-24 25 views
0

Ich habe ein Benutzersteuerelement für meine Xamarin Forms-Projekte erstellt, beginnend mit einer Xamarin.Forms-Klassenbibliothek. Das Benutzersteuerelement enthält eine Bilddatei, die ich dem Klassenbibliotheksprojekt in einem Verzeichnis "Assets" hinzugefügt habe. Innerhalb des Benutzers XAML des Steuercode bin Referenzierung ich einfach das Bild als ...Verweise auf Bilder in Xamarin Forms Benutzersteuerung/Klassenbibliothek

<Image Source="Assets/ImageFile.png"/>

Ich denke, es gibt keine Notwendigkeit für plattformspezifischen Code hier, da die Bilddatei an die Klassenbibliothek Projekt lokal und kompiliert darin.

Wenn ich die DLL in einem Xamarin Forms-Projekt referenziere, funktioniert alles wie erwartet ... AUSSER, es gibt kein Bild. Es ist, als ob die Klassenbibliothek es nicht sehen kann. Ich habe mit dem Pfad herumgespielt, aber das Ergebnis ist immer das gleiche: kein Bild.

Wenn ich jedoch die Bilddatei in das Xamarin Forms-Projekt (d. H. In das Assets-Verzeichnis in UWP) lösche, erscheint das Bild einwandfrei - obwohl ich immer noch auf die Klassenbibliothek über die DLL verweise.

Was fehlt mir? Sicher kann ich das Bild in die DLL einbetten, ja?

+0

Wie ist die Struktur Ihres Projekts? Ein gemeinsames Projekt + UWP-Projekt? – hugoterelle

+0

Das Benutzersteuerelement befindet sich in einer "Klassenbibliothek (Xamarin.Forms)" (... wie es in VS2017 auf jeden Fall aufgeführt ist), und das Hauptprojekt ist eine "Cross Platform App (Xamarin)" mit einem PCL. Es scheint, als gäbe es Details zum Einbetten von Bildern in Klassenbibliotheken, die tief in der Xamarin-Website eingebettet sind: https://developer.xamarin.com/guides/xamarin-forms/user-interface/images/#Embedded_Images – FactoryOptimizr

Antwort

0

Um sicherzustellen, dass das Bild innerhalb der DLL enthalten ist:

Sie benötigen die Build Action setzen: EmbeddedResource.

Um ein Bild in ein Projekt einzubetten, klicken Sie mit der rechten Maustaste, um neue Elemente hinzuzufügen, und wählen Sie die Bilder aus, die Sie hinzufügen möchten. Standardmäßig hat das Bild Build Action: None; Dies muss auf Build Action: EmbeddedResource gesetzt werden.

Wenn Sie wissen müssen, wo dies einzustellen:

Die Build Action sehen und verändert für eine Datei im Eigenschaftenfenster werden kann.

Sie können mehr here lesen.