Я пытаюсь следовать документации Xamarin о внедренных изображений: https://developer.xamarin.com/guides/xamarin-forms/working-with/images/#Embedded_ImagesEmbeddedImage в Xamarin формах: как связать его в XAML
Это фрагмент кода, который я использую в моем портативном применении:
var embeddedImage = new Image { Aspect = Aspect.AspectFit };
embeddedImage.Source = ImageSource.FromResource("<MyNamespace>.<MyFolder>.imageFileName.jpg");
listItem.EmbeddedImage = embeddedImage;
Теперь я пытаюсь связать его в XAML, как часть ListView
(примечание:<Image Source="{Binding EmbeddedImage}" />
часть, вероятно, неправильно):
<ListView x:Name="listView">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<StackLayout BackgroundColor="#eee"
Orientation="Vertical">
<StackLayout Orientation="Horizontal">
<Image Source="{Binding EmbeddedImage}" /> // This is most likely wrong since it doesn't work
</StackLayout>
</StackLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
Я тестировал это с помощью <Image Source="{Binding ImageUrl}" />
, и он работает, поэтому остальная часть кода работает так, как должна.
Edit:
Кто-то предложил этот пост в качестве решения:
How to load an image to a ImageCell on Xamarin.Forms?
Но принятый ответ был:
Изображения идут в ваш «родные» проекты
... но на самом деле документация Xamarin говорит, что это можно сделать внутри портативного проекта (так что вам не нужно будет копировать одни и те же изображения/значки через все «родные» проекты).
Я знаю, что поместить их в каждый подпроект, вероятно, сработает, но это не вопрос моего вопроса.
Возможный дубликат [Как загрузить изображение в ImageCell на Xamarin.Forms?] (Http://stackoverflow.com/questions/37489748/how-to-load-an-image-to-a -imagecell-on-xamarin-forms) – SushiHangover
@SushiHangover Ваш ответ в возможном дублирующем сообщении был «Образы идут в ваши« родные »проекты». Но похоже, что их перенос в переносной проект возможен, поскольку он подробно описан в документации: https://developer.xamarin.com/guides/xamarin-forms/working-with/images/#Embedded_Images. Кроме того, похоже, что я не единственный, кто разочарован этой проблемой: https://forums.xamarin.com/discussion/20585/how-to-load-embedded-image-resource-in-pcl-assembly –
Использование этого метода требует, чтобы вы использовали тип сборки 'EmbeddedResource' и который находится в вашем проекте/сборке' Xamarin.Form'. Что касается производительности и потребления ресурсов, я бы рекомендовал использовать встроенное связывание и встраивание сборки ... (Это также было рассмотрено во время разговора Джейсона Смита «Эволюция»). – SushiHangover