上一篇我们介绍了如何在Windows Phone程序中使用启动器。本文,我们来看看程序中与启动器相似的功能——选择器。
什么是选择器?
选择器比启动器略复杂一些,因为它们要将数据带回到程序中,而启动器只是让用户去完成一个任务。我们将讲解此平台上每个可用的选择器。本文的最后,我提供了一个可下载的包含了所有描述过的选择器的代码示例。
对每个选择器而言,你都要确保在代码后置的文件中包含了下面的语句。我们需要引用Microsoft.Phone.Tasks名称空间。
using Microsoft.Phone.Tasks;
下面是目前可用的选择器:
CameraCaptureTask – 为用户提供在程序中直接拍照的功能。
EmailAddressChooserTask – 在程序中允许用户从联系人里面选择一个邮件地址。
PhoneNumberChooserTask – 在程序中允许用户从联系人里面选择一个电话号码。
PhotoChooserTask – 在程序中允许用户从设备里选择一张照片。
使用选择器
每个选择器都有自己的属性,但在设定之后,你需要调用Show方法向用户展示。你可以在选择器中用Show方法来实现。在众多选择器中要记住的一点是在用户做出选择后你需要创建一个事件处理程序。否则,你将无法捕获他们所选的数据。
作为例子,来看一下CameraCaptureTask:
- CameraCaptureTask cct = new CameraCaptureTask();
- cct.Completed += new EventHandler (cct_Completed);
- cct.Show();
这是我添加的事件处理程序:
- void cct_Completed(object sender, PhotoResult e)
- {
- BitmapImage bmp = new BitmapImage();
- bmp.SetSource(e.ChosenPhoto);
- p_w_picpath1.Source = bmp;
- }
你会注意到我为在用户拍照时创建了一个事件处理程序。这也是我在程序中获取并使用照片数据的方式。当你在模拟器中测试时,你会看到实际上它并不能利用摄像头。而只是创建了一幅在白色画布中有一个旋转黑块的假图片。这应该可以满足你的测试了,但我还是建议在上传你的程序到Marketplace之前用真实设备测试一下。
我已经将每一个选择器的名字链接到MSDN相应的文章中,在那儿你可以看到所有的属性。所以我就不在这儿进行这种大量的复制劳动了。明天我们讨论在调试Windows Phone 7应用程序时一些对你有用的工具。
下载示例代码
这个例子包含了上述的所有选择器。