Windows Phone中的选择器事件详解
在Windows Phone中,除了启动器之外,还有很多,类似于保存电话号码,选择好友等一系列的功能,它们被称为选择器。
选择器和启动器的区别:启动器在启动这些功能的时候,并没有强行要求运行完成后立即返回到你正在开发的应用程序中,也就是说没有一个明确的返回值返回到你的应用程序中。而选择器则不同,如果我们启动了一个相机应用程序,那么很明显用户在拍照之后,我们的应用程序应该会去处理这张照片,是该保存还是该放弃等。
这些选择器的一个共同的使用格式是,都有一个Show方法和一个Completed事件,使用Show方法来显示供用户选择的界面,使用Complete监听并处理用户完成操作之后的细节。
Windows Phone中的选择器:
• CameraCaptureTask
• EmailAddressChooserTask
• PhotoChooserTask
• SaveContactTask
• PhoneNumberChooserTask
• AddressChooserTask
• GameInviteTask
• SaveEmailAddressTask
• SavePhoneNumberTask
• SaveRingtoneTask
CameraCaptureTask
CameraCaptureTask 通过相机拍摄任务,用户能够从您的应用程序中使用内置“相机”应用程序拍摄照片。如果用户完成此任务,将会引发一个事件,并且事件处理程序将会在结果中收到一张照片。
注意:
从 Windows Phone OS 7.1 开始,我们便可以直接在自己的应用程序中使用设备相机。
通过调用 CameraCaptureTask 对象的 Show 方法启动“相机”应用程序。通过处理 Completed 事件获取选择器操作的结果。
使用方式:
CameraCaptureTask myCameraCaptureTask;//创建照相任务实例
//拍照
myCameraCaptureTask = new CameraCaptureTask();//实例化
myCameraCaptureTask.Completed += new EventHandler<PhotoResult>(myCameraCaptureTask_Completed);//增添事件处理
try
{
myCameraCaptureTask.Show();//显示应用程序
}
catch (System.InvalidOperationException ex)
{
MessageBox.Show(ex.Message);
}
完成事件:
//拍照完成
void myCameraCaptureTask_Completed(object sender, PhotoResult e)
{
if (e.TaskResult == TaskResult.OK)//拍照完成
{
MessageBox.Show(e.ChosenPhoto.Length.ToString());
}
}
EmailAddressChooserTask
EmailAddressChooserTask使用电子邮件地址选择器任务可获取用户选择的联系人的电子邮件地址。此任务启动“联系人”应用程序,以便用户能够选择联系人。如果用户完成此任务,将会引发一个事件,并且事件处理程序将会在结果中收到一个地址。
使用方式:
EmailAddressChooserTask myEmailAddressChooserTask;//创建邮件地址选择任务实例
//邮件地址
myEmailAddressChooserTask = new EmailAddressChooserTask();
myEmailAddressChooserTask.Completed += new EventHandler<EmailResult>(myEmailAddressChooserTask_Completed);
try
{
myEmailAddressChooserTask.Show();//显示邮件地址选择
}
catch (System.InvalidOperationException ex)
{
MessageBox.Show(ex.Message);
}
完成事件:
//邮件地址选择完成
void myEmailAddressChooserTask_Completed(object sender, EmailResult e)
{
if (e.TaskResult == TaskResult.OK)//选择完成
{
MessageBox.Show("The email for " + e.DisplayName + " is " + e.Email);
}
}
PhotoChooserTask
使用照片选择器任务使用户能够从电话中选择现有照片。此任务可以启动照片选择器应用程序。如果用户完成此任务,将会引发一个事件,并且事件处理程序将会在结果中收到一张照片。
属性:
• PixelHeight获取或设置在照片选择过程中由用户设置的裁剪区域纵横比的最大高度和高度组件。
• PixelWidth获取或设置在照片选择过程中由用户设置的裁剪区域纵横比的最大高度和高度组件。
• ShowCamera获取或设置在照片选择过程中是否向用户显示用于启动相机的按钮。
使用方式:
PhotoChooserTask myPhotoChooserTask;//创建照片选择任务实例
//照片选择
myPhotoChooserTask = new PhotoChooserTask();
myPhotoChooserTask.Completed += new EventHandler<PhotoResult>(myPhotoChooserTask_Completed);
try
{
myPhotoChooserTask.Show();
}
catch (System.InvalidOperationException ex)
{
MessageBox.Show(ex.Message);
}
完成事件:
//照片选择完成
void myPhotoChooserTask_Completed(object sender, PhotoResult e)
{
if (e.TaskResult == TaskResult.OK)
{
MessageBox.Show
补充:移动开发 , Windows Phone ,