2016-05-27 2 views
0

Я пытаюсь загрузить значки в ImageCell внутри ListView, но когда я создаю проект, значок не появляется на ImageCell.Как загрузить изображение в ImageCell на Xamarin.Forms?

Вот моя структура проекта:

enter image description here

Вот моя XAML страница:

<?xml version="1.0" encoding="utf-8" ?> 
<MasterDetailPage xmlns="http://xamarin.com/schemas/2014/forms" 
      xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" 
      x:Class="MyNotes.StartPage"> 

    <MasterDetailPage.Master Title="Menu"> 
    <ContentPage Title="Menu"> 
     <StackLayout VerticalOptions="FillAndExpand"> 
     <ListView x:Name="listViewMaster" VerticalOptions="FillAndExpand"> 
      <ListView.ItemTemplate> 
      <DataTemplate> 
       <ImageCell Text="{Binding Title}" ImageSource="{Binding IconSource}" /> 
      </DataTemplate> 
      </ListView.ItemTemplate> 
     </ListView> 
     </StackLayout> 
    </ContentPage> 
    </MasterDetailPage.Master> 

    <MasterDetailPage.Detail> 
    <ContentPage> 

    </ContentPage> 
    </MasterDetailPage.Detail> 

</MasterDetailPage> 

А вот код позади:

using System.Collections.Generic; 
using Xamarin.Forms; 

namespace MyNotes 
{ 
    public partial class StartPage : MasterDetailPage 
    { 
     public StartPage() 
     { 
      InitializeComponent(); 

      List<MasterPageItem> masterPageItems = new List<MasterPageItem>() 
      { 
       new MasterPageItem() 
       { 
        Title = "Contacts", 
        IconSource = ImageSource.FromFile(@"c:\Projetos\MyNotes\MyNotes\MyNotes\Resources\image\contacts.png"), 
        TargetType = typeof(ContactPage) 
       }, 
       new MasterPageItem() 
       { 
        Title = "Todo List", 
        IconSource = ImageSource.FromFile(@"Resources\image\todo.png"), 
        TargetType = typeof(TodoListPage) 
       }, 
       new MasterPageItem() 
       { 
        Title = "Reminder", 
        IconSource = ImageSource.FromResource("Resources.image.reminder.png"), 
        TargetType = typeof(ContactPage) 
       } 
      }; 

      listViewMaster.ItemsSource = masterPageItems; 
     } 
    } 
} 

Что я делаю неправильно?

ответ

1

Изображения идут в ваших "родных" проектов:

  • Xamarin.iOS = BundledResource Построить Тип

  • Xamarin.Android = AndroidResource Построить Тип


IconSource = ImageSource.FromFile("SanFran.jpg") 

или с помощью неявного преобразования:

IconSource = "SanFran.jpg"; 

enter image description here

Working with Images

+0

Thank вы. Как только я переместил изображения в нужную папку внутри собственного проекта и установил правильное действие сборки, он работал отлично. – artie

+0

Я вижу что-то подобное с ImageCell, где я пробовал все варианты, которые я могу себе представить, и он не появляется. Возможно, мне нужно установить и другое. Любые идеи? –

+0

@TheSenator Я бы предложил вам опубликовать новый вопрос с соответствующим кодом, настройкой изображения, чтобы понять, что вы делаете. – SushiHangover

0

Вы отметили изображения, которые вы добавили в проект, как внедренные повторно?

embedded resource

+0

Да, я пробовал. Но это не сработает. – artie

+0

Чем я думаю, вам нужно добавить изображения как ImageSource.FromResource, а не ImageSource.FromFile. –

+0

@AviK. FYI: Встраивание их в сборку и использование «FromResource» - это вариант, который будет работать, но он не рекомендуется с точки зрения производительности и потребления ресурсов. Лучший способ - использовать встроенные типы сборки BundledResource или 'AndroidResource'. – SushiHangover

Смежные вопросы