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

本文关键字:图像 填充 列表 | 更新日期: 2023-09-27 18:20:57

我对编程和WPF都有点陌生。我知道这很容易,但到目前为止我还没有尝试过。。。。。我想用文件夹中的图像填充列表框。我还需要知道如何强制我的列表框不允许滚动到一边。到目前为止,我还没有偶然发现任何似乎有效的东西。

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

IList<Bitmap> HistoryImages = new List<Bitmap>();
foreach(String imagefile in Directory.GetFiles( @"C:'ProgramData'etc" ))
{
    HistoryImages.Add( new Bitmap( imagefile) );
}

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

找到了对我有用的东西!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);
}

这需要数据绑定和数据模板的基础知识。(如果你阅读并理解了所有你应该能够做到的。)

关于滚动,将ScrollViewer.HorizontalScrollBarVisibility设置为ListBoxDisabled 的附加属性