2023年7月19日发(作者:)
WPF中ProgressBar的使⽤第⼀次在WPF中使⽤进度条,界⾯是⽤的xml。运⽤BackgroundWorker实现进度条变化。通过前台输⼊数据,在界⾯内画正⽅形。代码如下: 1 private static BackgroundWorker backgroundWorker; 2
3 //窗体加载时进⾏的⼯作。 4
5 private void Window_Loaded(object sender, RoutedEventArgs e) 6 { 7 backgroundWorker = new BackgroundWorker(); 8 ReportsProgress = true; 9 SupportsCancellation = true; //⽀持异步取消操作10 += backgroundWorker_DoWork; //发⽣时kerAsync()调⽤11 ssChanged += backgroundWorker_ProgressChanged;12 kerCompleted += backgroundWorkerDownloader_RunWorkerCompleted;13 }14
15 //后台操作任务,⽆法获取前台数据。不在⼀个线程16 void backgroundWorker_DoWork(object sender, DoWorkEventArgs e)17 {18 for (int i = 0; i < ((int)nt); i++)19 {20 Progress(i);21
22 //数据传输之间暂停的时间,10ms,数据传输过快⽽图形没有画完可能会造成进度条不显⽰23 (10);
24 //(sender as BackgroundWorker).ReportProgress(i);25 }26 }27
28 public static double lng = 110.00, lat = -35.00;//经度,纬度29 double a = 0.01;30
31 //需要前台数据的操作写在ProgressChanged中32
33 void backgroundWorker_ProgressChanged(object sender, ProgressChangedEventArgs e)34 {35 t = ssPercentage;36 = ssPercentage;37
38 //在界⾯内画正⽅形39
40 DrawZFX(e);41
42 }43
44 private void DrawZFX(ProgressChangedEventArgs e)45
46 {47 var i = ssPercentage;48 lat = ((lat - a), 2);49 = (lng + a * i).ToString();50 = (lat + a * i).ToString();51 AppendGeometryPoint(true); //在界⾯内添加起始点52
53 = ((lng + a * i) + a).ToString();54 = (lat + a * i).ToString();55 AppendGeometryPoint(false);
56
57 = ((lng + a * i) + a).ToString();58 = ((lat + a * i) + a).ToString();59 AppendGeometryPoint(false);60
61 = (lng + a * i).ToString();62 = ((lat + a * i) + a).ToString();63 AppendGeometryPoint(false);64 }65
66 void backgroundWorkerDownloader_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)67 {68 lity = ;69 }
发布者:admin,转转请注明出处:http://www.yc00.com/xiaochengxu/1689722337a281115.html
评论列表(0条)