Отображение элементов в виде изображений в WPF ListView - PullRequest
1 голос
/ 03 апреля 2010

Таким образом, я связал List с ListView, где List имеет элементы типа Album, где у него много свойств, включая .Cover, которым я являюсь изображение на диске. Ну, так как я не знаю, какой тип изображения необходим и как они должны быть загружены (я знаю только использование типов изображений для Winforms), я пока не знаю этот тип.

Может ли кто-нибудь показать или опубликовать мне быстрый пример, где он показывает элементы такого типа, отображаемые в виде изображений определенного фиксированного размера, используя свойство .Cover?

По сути это будет показывать:

  1. Какой тип .Cover должен быть
  2. Как открыть образы с диска для WPF (если он отличается от загрузки образов Winforms)
  3. Как показать их в ListView в виде изображений определенного фиксированного размера , масштабируя изображения при необходимости

Ответы [ 2 ]

6 голосов
/ 03 апреля 2010
  1. ImageSource
  2. ImageSource myImageSource = new BitmapImage (новый Uri (@ "file: // C: ... something.jpg"));
  3. Укажите шаблон данных для элементов в свойстве ItemTemplate объекта ListView:

    <Window.Resources>
        <DataTemplate x:Key="ItemTemplate">
            <StackPanel Orientation="Horizontal">
                <Image Width="10" Height="10" Stretch="Fill" Source="{Binding Cover}"/>
            <Label Content="{Binding Title}" />
            </StackPanel>
        </DataTemplate>
    </Window.Resources>
    
    <Grid x:Name="grid">
        <ListView ItemTemplate="{StaticResource ItemTemplate}" ItemsSource="{Binding Albums}" />
    </Grid>
    
2 голосов
/ 03 апреля 2010

В xaml вы определяете DataTemplate в вашем Listview ItemTemplate, который использует Image, связывая его свойство Source с путем в вашей файловой системе.

Другими словами, Cover может иметь тип string, путь к файлу. Если вы хотите масштабировать, достаточно простой способ - ViewBox, который масштабирует все, что в нем содержится. Тем не менее, само изображение, вероятно, имеет опции для масштабирования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...