C# 在项目上的操作结束后,如何用字符串替换listView项目?
在DoWork中,我调整图像文件的数量并将其保存到硬盘,同时报告百分比和图像数量。在ProgressChanged事件中,我正在更新progressBar和一些标签C# 在项目上的操作结束后,如何用字符串替换listView项目?,c#,listview,C#,Listview,在DoWork中,我调整图像文件的数量并将其保存到硬盘,同时报告百分比和图像数量。在ProgressChanged事件中,我正在更新progressBar和一些标签 private void Start_Click(object sender, RoutedEventArgs e) { if (listView.Items.Count > 0) worker.RunWorkerAsync(); } 后
private void Start_Click(object sender, RoutedEventArgs e)
{
if (listView.Items.Count > 0)
worker.RunWorkerAsync();
}
后台工作程序完成后,您将调用UI线程并运行以下操作:
public void Save(BitmapImage image, string filePath)
{
BitmapEncoder encoder = new PngBitmapEncoder();
encoder.Frames.Add(BitmapFrame.Create(image));
using (var fileStream = new System.IO.FileStream(filePath, System.IO.FileMode.Create))
{
encoder.Save(fileStream);
}
}
private BitmapImage ResizeImage(string file)
{
var bitmap = new BitmapImage();
var stream = File.OpenRead(file);
bitmap.BeginInit();
bitmap.CacheOption = BitmapCacheOption.OnLoad;
bitmap.StreamSource = stream;
bitmap.DecodePixelHeight = 100;
bitmap.DecodePixelWidth = 100;
bitmap.EndInit();
stream.Close();
stream.Dispose();
return bitmap;
}
其中,RefreshCallback
是更新列表项的Refresh
函数的简单委托
public void Save(BitmapImage image, string filePath)
{
BitmapEncoder encoder = new PngBitmapEncoder();
encoder.Frames.Add(BitmapFrame.Create(image));
using (var fileStream = new System.IO.FileStream(filePath, System.IO.FileMode.Create))
{
encoder.Save(fileStream);
}
}
private BitmapImage ResizeImage(string file)
{
var bitmap = new BitmapImage();
var stream = File.OpenRead(file);
bitmap.BeginInit();
bitmap.CacheOption = BitmapCacheOption.OnLoad;
bitmap.StreamSource = stream;
bitmap.DecodePixelHeight = 100;
bitmap.DecodePixelWidth = 100;
bitmap.EndInit();
stream.Close();
stream.Dispose();
return bitmap;
}
Dispatcher.Invoke(DispatcherPriority.Normal, new RefreshCallback(Refresh));