|
一、常用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(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(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(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(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;
}
} |
|