一、常用Task
所有的Task都有Show方法,调用Show方法启动任务,任务执行完成一般会返回应用,所有的Task(任务)都不是自动启动的,需要用户手动点击,这是WindowPhone7基于安全考虑防止泄密的吸费等问题。
这里我们需要添加以下命名空间:
using Microsoft.Phone.Tasks;
1.1 SmsComposeTask
启动发送短信的任务,可以通过To,Body两个属性设置对方的号码和短信的内容,在设置好To和Body的内容后,需要调用Show方法,才会显示发送短信的界面。
示例代码:
private void Sendbutton_Click(object sender, RoutedEventArgs e) { SmsComposeTask sendms = new SmsComposeTask(); sendms.To = "10086"; sendms.Body = "话费查询"; sendms.Show(); }
1.2 EmailComposeTask
启动发送Email的服务,同样的可以通过设置To,Subject,Body,CC属性来分别设置收件人,标题,内容和抄送人。
示例代码:
private void Sendbutton_Click(object sender, RoutedEventArgs e) { EmailComposeTask sendemail=new EmailComposeTask(); sendemail.To="[email protected]"; sendemail.Subject=" 你好"; sendemail.Body="你好,这是。。。发给你发的短信!"; sendemail.Show(); }
1.3 WebBrowserTask
启动浏览器服务,可以通过设置URL路径(URL表示绝对路径)或者Uri(相对路径)。
代码如下:
private void Sendbutton_Click(object sender, RoutedEventArgs e) { WebBrowserTask webtask = new WebBrowserTask(); webtask.URL = "http://www.baidu.com"; webtask.Show(); }
1.4 PhoneCallTask
启动windows phone 打电话的服务,可以通过设置DisplayName和PhoneNumber来设置联系人名字和联系人电话号码。
示例代码:
private void Sendbutton_Click(object sender, RoutedEventArgs e) { PhoneCallTask phoneTask = new PhoneCallTask(); phoneTask.DisplayName = "中国移动"; phoneTask.PhoneNumber = "10086"; phoneTask.Show(); }
一些Task还会返回一个执行结果的参数,这些任务一般都是继承自ChooserBase,并包含一个监听任务的Completed事件,可以从事件参数e 中获得执行的结果,所有任务事件参数e都含有一个TaskResult属性,并有三个值,即任务处理的三种情况:Ok.表示任务执行成功,Cancel.表示任务被取消,Erro.表示执行过程发生错误。下面我们看一看具体的任务名称:
1.5 SavePhoneNumberTask
用来保存电话号码的任务,可以通过设置PhoneNumber属性来设置保存的电话号码是多少。注意在此不能设置电话号码的联系人名称,需要启动任务后手动的添加。
示例代码:
private void Sendbutton_Click(object sender, RoutedEventArgs e) { SavePhoneNumberTask savephonenum = new SavePhoneNumberTask(); savephonenum.PhoneNumber = "15040057978"; savephonenum.Completed += new EventHandler<TaskEventArgs>(savephonenum_Completed); savephonenum.Show(); } void savephonenum_Completed(object sender, TaskEventArgs e) { if (e.Error != null) { MessageBox.Show("错误"); } if (e.TaskResult == TaskResult.OK) { MessageBox.Show("保存成功!"); } if (e.TaskResult == TaskResult.Cancel) { MessageBox.Show("任务已被取消!"); } }
1.6 PhoneNumberChooserTask
用来选择电话号码的任务,其中事件参数e 包含一个PhoneNumber属性,可以用来获得选择的号码。
示例代码:
private void button1_Click(object sender, RoutedEventArgs e) { PhoneNumberChooserTask ChooserphoneNum = new PhoneNumberChooserTask(); ChooserphoneNum.Completed += new EventHandler<PhoneNumberResult>(ChooserphoneNum_Completed); ChooserphoneNum.Show(); } void ChooserphoneNum_Completed(object sender, PhoneNumberResult e) { if (e.Error == null && e.TaskResult == TaskResult.OK) { MessageBox.Show(e.PhoneNumber); } }
1.7 CameraCaptureTask
用来拍照的任务,其中事件参数e 包含一个ChosenPhoto属性,可以用来获得拍照的图片。
示例代码:
private void TakePhotobutton_Click(object sender, RoutedEventArgs e) { CameraCaptureTask takePhoto = new CameraCaptureTask(); takePhoto.Completed += new EventHandler<PhotoResult>(takePhoto_Completed); takePhoto.Show(); } void takePhoto_Completed(object sender, PhotoResult e) { if (e.Error == null && e.TaskResult == TaskResult.OK) { BitmapImage bitmap = new BitmapImage();//定义流数据格式的图片 bitmap.SetSource(e.ChosenPhoto);//设置流数据源 image1.Source = bitmap;//将流数据图片赋给Image } }
1.8 PhotoChooserTask
用来选择图片的任务,包含以下几个属性:
PixelWidth:设置选取的图片的宽度,单位是像素
PixelHeight:设置选取图片的高度,单位是像素
ShowCamera:设置是否允许拍照,true OR false.
如果选取的图片大于我们所设置的大小(即PixelWidth 和PixelHeight),将自动经行裁剪到我们所设置的图片大小。
同理事件参数 e 也包含ChosenPhoto属性,和之前的CameraCaptureTask一样。
示例代码:
private void ChoosePhotoButton_Click(object sender, RoutedEventArgs e) { PhotoChooserTask choosephoto = new PhotoChooserTask(); choosephoto.PixelWidth=200; choosephoto.PixelHeight=200; choosephoto.ShowCamera = true; choosephoto.Completed += new EventHandler<PhotoResult>(choosephoto_Completed); choosephoto.Show(); } void choosephoto_Completed(object sender, PhotoResult e) { if (e.TaskResult == TaskResult.OK && e.Error != null) { BitmapImage bitimage = new BitmapImage(); bitimage.SetSource(e.ChosenPhoto); image1.Source = bitimage; } }