在WPF ListView中将项目显示为图像

时间:2010-04-03 07:37:40

标签: c# .net wpf listview image

所以我已将List绑定到ListView,其中List包含Album类型的项目,其中包含许多属性,包括.Cover,我是磁盘上的图像。好吧,因为我不知道需要什么类型的图像以及如何加载它们(我只知道使用Winforms的图像类型),我还不知道它的类型。

有人可以展示或发布一个快速示例,其中显示这类项目使用.Cover属性显示为某个固定大小的图片吗?

实质上,这将显示:

  1. .Cover应该是什么类型
  2. 如何从磁盘为WPF打开图像(假设它与Winforms图像加载不同)
  3. 如何在ListView上将它们显示为某个固定大小的图像,并在必要时缩放图像

2 个答案:

答案 0 :(得分:6)

  1. 的ImageSource
  2. ImageSource myImageSource = new BitmapImage(new Uri(@“file:// C:... something.jpg”));
  3. 为ListView的ItemTemplate属性中的项目指定数据模板:

    <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>
    

答案 1 :(得分:2)

在xaml中,您在Listview的DataTemplate中定义ItemTemplate使用Image,将Source属性绑定到文件系统上的路径。

换句话说,Cover可以是字符串类型,文件路径。如果你想缩放,一个非常简单的方法是ViewBox,它可以扩展它包含的所有内容。但是,Image本身可能有缩放选项。