--前台代码

<Grid x:Name="ContentPanel"  Grid.Row="1" Margin="0,0,24,0">
            <ProgressBar x:Name="ProgressBar1" HorizontalAlignment="Left" Height="71" Margin="42,244,0,0" VerticalAlignment="Top" Width="308" Value="50"/>
            <TextBlock HorizontalAlignment="Left" Height="38" Margin="42,10,0,0" TextWrapping="Wrap" Text="请选择类型" VerticalAlignment="Top" Width="330"/>
            <RadioButton x:Name="rad1" Content="Determinate类型" HorizontalAlignment="Left" Margin="42,53,0,0" VerticalAlignment="Top" Width="330" IsChecked="True"/>
            <RadioButton x:Name="rad2" Content="Indeterminate类型" HorizontalAlignment="Left" Margin="42,146,0,0" VerticalAlignment="Top" Width="330"/>
            <Button x:Name="begin" Content="启动" HorizontalAlignment="Left" Margin="42,320,0,0" VerticalAlignment="Top" Width="295"/>
            <Button x:Name="canel" Content="取消" HorizontalAlignment="Left" Margin="42,392,0,0" VerticalAlignment="Top" Width="295"/>
        </Grid>

--后台代码

using Microsoft.Phone.Controls;
using Microsoft.Phone.Shell;
using PhoneFirst.Resources;
using System.ComponentModel; namespace PhoneFirst
{
public partial class MainPage : PhoneApplicationPage
{
private BackgroundWorker backgroundworker;
// 构造函数
public MainPage()
{ InitializeComponent();
ProgressBar1.Visibility = Visibility.Collapsed;
begin.Click += begin_Click;
canel.Click += canel_Click; } void canel_Click(object sender, RoutedEventArgs e)
{
ProgressBar1.Visibility = Visibility.Collapsed;
} void begin_Click(object sender, RoutedEventArgs e)
{
ProgressBar1.Visibility = Visibility.Visible;
if (rad1.IsChecked == true)
{
ProgressBar1.IsIndeterminate = false;
backgroundworker = new BackgroundWorker();//创建一个后台处理类的对象
//调用RunWorkerAsync后台操作时引发此事件,即后台要处理的事情写在这个事件里面
backgroundworker.DoWork += backgroundworker_DoWork;
//当后台操作完成事件
backgroundworker.RunWorkerCompleted += backgroundworker_RunWorkerCompleted;
//当处理进度(ReportProgress)被激活后,进度的改变将触发ProgressChanged事件
backgroundworker.ProgressChanged += backgroundworker_ProgressChanged;
//设置为可报告进度情况的后台处理
backgroundworker.WorkerReportsProgress = true;
backgroundworker.RunWorkerAsync();
}
else
{
ProgressBar1.Value = 0;
ProgressBar1.IsIndeterminate = true;
}
}
//进度改变处理
void backgroundworker_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
Dispatcher.BeginInvoke(() => {
//把进度改变的值赋给ProgressBar1进度条的值
ProgressBar1.Value = e.ProgressPercentage;
});
}
//后台操作完成
void backgroundworker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
Dispatcher.BeginInvoke(() => {
//隐藏进度条;
ProgressBar1.Visibility = Visibility.Collapsed;
});
}
//后台操作处理
void backgroundworker_DoWork(object sender, DoWorkEventArgs e)
{
for (int i = 0; i < 100; i++)
{
i += 10;
//赋值当前进度的值,
backgroundworker.ReportProgress(i);
//为了能看到进度条的效果。这里用进程暂停了1秒
System.Threading.Thread.Sleep(1000);
}
} public ResourceDictionary Resources { get; set; } } }

最新文章

  1. Mybatis批量删除
  2. Git的checkout, reset, revert
  3. 原生js模拟锚点,实现点击后,内容定位到本页的对应位置
  4. 代理 XP”组件已作为此服务器安全配置的一部分被关闭。系统管理员可以使用 sp_configure 来启用“代理 XP”。
  5. Java程序设计的DOS命令基础
  6. SGU 105 div.3 找规律
  7. c#扩展方法的理解(一:初识)
  8. dede数据库文件导入失败的可能原因是数据表前缀不同,这里的失败指的是mysql添加了数据,但后台不显示
  9. Android 所有版本区别总结(转)
  10. IE6兼容inline-block的方法
  11. TreeView点击父节点不刷新展开子节点
  12. php中json对象数据的输出转化
  13. require和require_once的区别
  14. 大数据学习之Linux基础01
  15. Linux源码安装软件
  16. FZU 2254 英语考试
  17. Eclipse ADT中的logcat不显示解决方法
  18. Linux安装配置NFS教程(CentOS 6.5)
  19. [Spring学习笔记 6 ] Spring JDBC 详解
  20. 牛腩学Kotlin做Android应用

热门文章

  1. AC日记——T-Shirt Hunt codeforces 807b
  2. HDU 多校1.3
  3. Hadoop-eclipse插件配置
  4. 【模拟】洛谷 P1328 NOIP2014提高组 day1 T1 生活大爆炸版石头剪刀布
  5. 【KMP】BZOJ3670-[Noi2014]动物园
  6. hadoop InputFormat getSplits
  7. 事务的实现就是利用数据库锁(行锁,表锁等),且db上锁,都是在操作之前上锁
  8. MSGPACK序列和还原TFDParams
  9. 关于yum的一些安装问题
  10. Linux下使用GDB进行调试