使用wpf 写选择一个文件夹后,将文件夹内所有图片都展示出来
时间: 2024-11-30 19:22:36 浏览: 21
WPF .NET6.0 C# 遍历指定文件夹中的所有图片随机显示 可暂停可调节滚动速度
在WPF中实现选择文件夹并显示其中所有图片的功能,你可以使用`System.Windows.Forms.OpenFileDialog` 和 `System.IO.DirectoryInfo` 类。以下是步骤概述:
1. 首先,在XAML中创建一个按钮或菜单项,用于触发文件夹选择操作:
```xml
<Button Content="选择文件夹" Click="OnSelectFolderClick"/>
```
2. 在对应的C#背后,添加事件处理函数`OnSelectFolderClick`:
```csharp
private void OnSelectFolderClick(object sender, RoutedEventArgs e)
{
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.Filter = "Image Files (*.jpg;*.jpeg;*.png)|*.jpg;*.jpeg;*.png";
if (openFileDialog.ShowDialog() == true) // 如果用户选择了一个文件或取消则返回false
{
string selectedPath = openFileDialog.FileName;
// 获取文件夹路径
DirectoryInfo folderInfo = new DirectoryInfo(selectedPath);
if (folderInfo.Exists)
{
DisplayImages(folderInfo);
}
else
{
MessageBox.Show("所选路径不是一个有效的文件夹.");
}
}
}
```
3. 创建一个`DisplayImages`方法来遍历文件夹内的图片并显示它们,这里可以使用控件如`ListBox` 或者 `Grid` 显示图片缩略图:
```csharp
private void DisplayImages(DirectoryInfo directoryInfo)
{
ListBox imagesListBox = new ListBox();
// 添加图片到ListBox
foreach (FileInfo fileInfo in directoryInfo.GetFiles())
{
if (fileInfo.Extension.ToLower().Equals(".jpg") || fileInfo.Extension.ToLower().Equals(".jpeg") ||
fileInfo.Extension.ToLower().Equals(".png"))
{
Image thumbnailImage = new Image();
BitmapImage bitmapImageSource = new BitmapImage(new Uri(fileInfo.FullName));
thumbnailImage.Source = bitmapImageSource;
imagesListBox.Items.Add(thumbnailImage);
}
}
// 将ListBox添加到窗口内容中
// 这里假设你的窗口有一个Content区域
this.Content = imagesListBox;
}
```
阅读全文