Итак, я создал приложение для Windows Store (например, приложение Windows 8/ранее называемое Metro App), и я импортирую zip-архив, содержащий изображение (хорошо работает импорт).Показать изображение из Uri in Winrt и MVVM Pattern
Когда zip exctracted (в его собственной папке), я добавляю объект, который представляет папку в ObservableCollection.
Этот ObservableCollection используется как DataContext для GridView, имя папки отображается правильно, но первое изображение папки не ... < = так что моя проблема.
Я создаю мой объект, используя статический метод после того, как экстракт завершаются
public class ZipFolder
{
public string Title
{
get { return _title; }
set { _title = value;}
}
public int CurrentPage
{
get { return _currentPage; }
set { _currentPage = value;}
}
public Uri PathCover
{
get { return _pathCover; }
set { _pathCover = value;}
}
private string _title ;
private int _currentPage;
private Uri _pathCover;
}
public static async Task<ZipFolderObject> CreateComic(StorageFolder folder)
{
ZipFolderObject o = new ZipFolderObject();
o.Title = folder.DisplayName;
IReadOnlyList<StorageFile> asyncOperation = await folder.GetFilesAsync();
StorageFile cover = asyncOperation[0];
o.PathCover = new Uri("ms-appdata:///local/" + folder.Name + "/" + cover.Name);
return o;
}
И связывание выглядеть следующим образом:
<DataTemplate x:Key="zipFolderItemTemplate">
<StackPanel Width="165" Height="250">
<Grid Height="215">
<Border Background="Bisque" Width="{Binding ActualWidth, ElementName=image}">
<!--<Image x:Name="image" VerticalAlignment="Top" HorizontalAlignment="Center" Source="{Binding Cover}" />-->
<Image Stretch="Uniform" x:Name="image" VerticalAlignment="Top" HorizontalAlignment="Center">
<Image.Source>
<BitmapImage UriSource="{Binding PathCover}" />
</Image.Source>
</Image>
</Border>
<Polygon Points="0,0 0,50, 50,0" Stroke="Red" FillRed" RenderTransformOrigin="0.5,0.5" Visibility="{Binding CurrentPage, Converter={StaticResource BookmarkVisibilityConverter}}" Width="{Binding ActualWidth, ElementName=image}" />
</Grid>
<TextBlock HorizontalAlignment="Center" TextWrapping="Wrap" VerticalAlignment="Top" Text="{Binding Title}" Margin="0,10,0,0" Foreground="Black" />
</StackPanel>
</DataTemplate>
Так что, если кто-то есть намек к моей проблеме это будет здорово!
Я продолжаю свое исследование и я связываю непосредственно к источнику изображения в свойство ZipFolder объекта типа BitmapImage. Он работает, но я думаю, что это может быть слишком много, и я предпочитаю первый путь ... – fantastik78