Showing items as images in a WPF ListView
So I have binded a List
to a ListVi开发者_如何转开发ew
where the List
has items of type Album
, where it has lots of properties including .Cover
, which I is an image on disk. Well since I don't know what type of image is needed and how they have to be loaded (I only know using Image types for Winforms), I don't know the type yet.
Can someone show or post me a quick sample where it shows this sort of items being shown as images of a certain fixed size using their .Cover
property?
In essence this would show:
- What type
.Cover
should be - How to open images from disk for WPF (assuming it's different than Winforms image loading)
- How to show them on a ListView as images of a certain fixed size, scaling the images if necessary
- ImageSource
- ImageSource myImageSource = new BitmapImage(new Uri(@"file://C:... something.jpg"));
Specify a data template for the items in the ListView's ItemTemplate property:
<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>
In xaml you'd define a DataTemplate
in your Listview's ItemTemplate
that uses an Image
, binding it's Source
property to a path on your file sysem.
In other words, Cover
can be of type string, a file path. If you want to scale, a pretty simple way is a ViewBox
, which scales all it contains. However, Image itself probably has options to do scaling.
精彩评论