Как загрузить изображение из каталога активов на кроссплатформенный xamarin XAML?

Это кажется действительно простым делом, и в теории это выглядит очень просто:

  1. создать каталог активов
  2. добавьте набор изображений и назовите его imageName (без .png)
  3. добавить изображения
  4. сделано

или, по крайней мере, это то, что я читаю почти везде, но до сих пор не могу заставить его работать.

Мой XAML выглядит так:

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:local="clr-namespace:CrossBaiscs"
             x:Class="CrossBaiscs.MainPage">
    <ContentPage.Content>
        <StackLayout BackgroundColor="Orange">
            <Label Text="Welcome to Xamarin.Forms!"
                   TextColor="White"
                VerticalOptions="CenterAndExpand" 
                HorizontalOptions="CenterAndExpand" />

            <Image VerticalOptions="CenterAndExpand"
                   HorizontalOptions="Center"
                   Source="logo1.png"/>

        </StackLayout>
    </ContentPage.Content>
</ContentPage>

И я добавил изображения в Каталог активов:

Снимок экрана

Я тестирую Xamarin Live Player на Iphone 6 и не вижу изображения под меткой.

Итак ... Что мне не хватает?

ИЗМЕНИТЬ

Это работает для этого парня: Можно ли использовать набор изображений в формах Xamarin

Но не для меня, я попытался удалить расширение .png и оставить xaml следующим образом:

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:local="clr-namespace:CrossBaiscs"
             x:Class="CrossBaiscs.MainPage">
    <ContentPage.Content>
        <StackLayout BackgroundColor="Orange">
            <Label Text="Welcome to Xamarin.Forms!"
                   TextColor="White"
                VerticalOptions="CenterAndExpand" 
                HorizontalOptions="CenterAndExpand" />

            <Image VerticalOptions="CenterAndExpand"
                   HorizontalOptions="Center"
                   Source="logo1"/>

        </StackLayout>
    </ContentPage.Content>
</ContentPage>

По-прежнему не работает. Пытался очистить папки сборки и удалить папки bin / obj, но ничего.

Пытался добавить ресурсы в папку ресурсов и удалить набор изображений из каталога активов:

Ресурсы в папке

Все еще не сработало.

Идеи?

ИЗМЕНИТЬ 2

Я оставил эти 3 изображения в папке Resources и добавил расширение .png в XAML, и это сработало, все же было бы неплохо узнать, как это должно быть сделано с использованием каталога активов.


person n.lell    schedule 11.12.2017    source источник
comment
Возможный дубликат Можно ли использовать набор изображений в формах Xamarin   -  person Jason    schedule 12.12.2017
comment
У меня он отлично работает, попробуйте добавить изображение с именем logo1.png непосредственно в папку Resources, чтобы проверить, работает ли оно.   -  person ColeX - MSFT    schedule 12.12.2017


Ответы (4)


Просто чтобы указать на то, что, вероятно, очевидно, но вызывало у меня проблемы целую вечность - вы не можете использовать набор LaunchImages, который поставляется с каталогом активов, поскольку он не может быть указан в раскрывающемся списке Image. Вам необходимо создать новый набор изображений.

После того, как я сделал это, неожиданно сработали следующие ответы (где их не было раньше):

Включение папки каталога активов в проект

Создание раскадровка с кодом программной части

person Michael Rodrigues    schedule 08.02.2018

не используйте расширение .png в XAML

<Image VerticalOptions="CenterAndExpand"
               HorizontalOptions="Center"
               Source="logo1"/>
person Jason    schedule 11.12.2017

В документации Xamarin они четко упомянули, что - в iOS свойство Page.Icon не может быть заполнено из изображения в наборе изображений каталога активов. Вместо этого загрузите изображения значков для свойства Page.Icon из папки Resources в проекте iOS.

person Nitin Malik    schedule 16.02.2018

Мы тестировали Xamarin Live Player на iPhone, но оказалось, что каталоги активов еще не поддерживаются. (https://twitter.com/praeclarum/status/941775333753217025?s=08)

Спасибо за ответы!

person n.lell    schedule 03.07.2018