一、常用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="972103830@qq.com";                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;              }          }