使用目录中的图像填充列表框

时间:2012-01-22 03:29:57

标签: c# wpf listbox

我在编程和WPF方面都是新手。我知道这很容易,但我到目前为止还没有尝试过...... 我想用文件夹中的图像填充列表框。我还需要知道如何强制我的列表框允许滚动到一边。到目前为止,我没有偶然发现任何似乎有效的事情。

这是我的C#代码,它将所选文件夹中的文件添加到列表中我基本上希望使用列表框来保存用户选择作为背景的图片的历史记录。

IList<Bitmap> HistoryImages = new List<Bitmap>();

foreach(String imagefile in Directory.GetFiles( @"C:\ProgramData\etc" ))
{
    HistoryImages.Add( new Bitmap( imagefile) );
}

2 个答案:

答案 0 :(得分:2)

找到适合我的东西! XAML代码:

<ListBox Name="ImageLog" Background="Transparent" IsEnabled="True"
    ScrollViewer.HorizontalScrollBarVisibility="Disabled" 
    ScrollViewer.VerticalScrollBarVisibility="Hidden" 
    ItemsSource="{Binding Path=Image}" BorderThickness="0" 
    SelectionChanged="ImageLog_SelectionChanged_1">
</ListBox>

C#代码:

foreach(string myFile in Directory.GetFiles( @"C:\ProgramData\MyApp" ) )
{
System.Windows.Controls.Image myLocalImage = new System.Windows.Controls.Image(); ;
myLocalImage.Height = 200;
myLocalImage.Margin = new Thickness( 5 );


BitmapImage myImageSource = new BitmapImage();
myImageSource.BeginInit();
myImageSource.UriSource = new Uri( @"file:///" + myFile );
myImageSource.EndInit();
myLocalImage.Source = myImageSource;

filePath.Add( myFile );
ImageLog.Items.Add(myLocalImage);
}

答案 1 :(得分:1)

这需要data bindingdata templating的基础知识。 (如果您阅读并理解了所有应该能够做到的事情。)

关于滚动,请将ListBox设为ScrollViewer.HorizontalScrollBarVisibility Disabled至{{1}}