public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); MyImages = new ObservableCollection<MyImageClass>(); OpenFileDialog ofd = new OpenFileDialog(); ofd.Multiselect = true; ofd.Filter = "Image Files (*.jpg, *.bmp,*.png,*.gif)|*.jpg;*.bmp;*.png;*.gif|All Files|*.*"; if (ofd.ShowDialog() == true) { string[] filePath = ofd.FileNames; int i=filePath.Length; string[] safeFilePath = ofd.SafeFileNames; foreach (string imgPath in filePath) { foreach (string filename in safeFilePath) { MyImages.Add(new MyImageClass(filename, GetImageFromResourceString(imgPath))); } } } //MyImages.Add(new MyImageClass("earth", GetImageFromResourceString("earth"))); //MyImages.Add(new MyImageClass("mercury", GetImageFromResourceString("mercury"))); //MyImages.Add(new MyImageClass("venus", GetImageFromResourceString("venus"))); } public ObservableCollection<MyImageClass> MyImages { get; set; } private BitmapImage GetImageFromResourceString(string imageName) { BitmapImage image = new BitmapImage(); image.BeginInit(); image.UriSource = new Uri(imageName); image.EndInit(); return image; } } public class MyImageClass { public MyImageClass(string title, ImageSource image) { this.Title = title; this.Image = image; } public string Title { get; set; } public ImageSource Image { get; set; } }
<Window x:Class="WpfApplication3.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow" Height="350" Width="525"> <Window.Resources> <Style TargetType="ListBox"> <Setter Property="ItemsPanel"> <Setter.Value> <ItemsPanelTemplate> <WrapPanel /> </ItemsPanelTemplate> </Setter.Value> </Setter> </Style> <DataTemplate x:Key="MyImagesItemTemplate"> <Grid Width="100" Height="100"> <Grid.RowDefinitions> <RowDefinition Height="auto" /> <RowDefinition Height="auto" /> </Grid.RowDefinitions> <Image Grid.Row="0" Source="{Binding Path=Image}" /> <Label Grid.Row="1" Content="{Binding Path=Title}" /> </Grid> </DataTemplate> </Window.Resources> <Grid > <ListBox ItemsSource="{Binding Path=MyImages, ElementName=window1}" ItemTemplate="{StaticResource MyImagesItemTemplate}" ScrollViewer.HorizontalScrollBarVisibility="Disabled" /> </Grid> </Window>
var
This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)