如何使用 Windows Phone 照片选择器任务

2012/2/9

使用照片选择器任务使用户能够从电话中选择现有照片。此任务可以启动照片选择器应用程序。如果用户完成此任务,将会引发一个事件,并且事件处理程序将会在结果中收到一张照片。

使用选择器,可以帮助您在 Windows Phone 平台中提供一致的用户体验。有关更多信息,请参阅 Windows Phone 启动器和选择器概述

重要说明重要说明:

若要在实际设备上测试照片选择器任务,请使用“连接工具”启动您的应用程序。有关更多信息,请参阅如何:使用 Windows Phone 的连接工具

使用照片选择器任务

  1. 将以下语句添加到您的代码中。

    using Microsoft.Phone.Tasks;
    
  2. 声明任务对象。它必须具有页面范围,因此应在页面中的构造函数之前声明它。

    PhotoChooserTask photoChooserTask;
    
  3. 将以下代码添加到您的页面构造函数中。此代码初始化任务对象,并标识要在用户完成任务后运行的方法。

    photoChooserTask = new PhotoChooserTask();
    photoChooserTask.Completed += new EventHandler<PhotoResult>(photoChooserTask_Completed);
    
  4. 在应用程序中的所需位置添加以下代码,例如按键点击事件中。为了测试此过程,可以将该代码放置在页面构造函数中。以下是启动任务的代码。

    try
    {
        photoChooserTask.Show();
    }
    catch (System.InvalidOperationException ex)
    {
        MessageBox.Show("An error occurred.");
    }
    
  5. 在页面中添加已完成事件处理程序的代码。此代码在用户完成任务后运行。结果是一个 PhotoResult 对象,该对象公开包含图像数据的流。有关使用照片图像流的信息,请参阅 Windows Phone 的相机和照片

    void photoChooserTask_Completed(object sender, PhotoResult e)
    {
        if (e.TaskResult == TaskResult.OK)
        {
            MessageBox.Show(e.ChosenPhoto.Length.ToString());
    
            //Code to display the photo on the page in an image control named myImage.
            //System.Windows.Media.Imaging.BitmapImage bmp = new System.Windows.Media.Imaging.BitmapImage();
            //bmp.SetSource(e.ChosenPhoto);
            //myImage.Source = bmp;
        }
    }
    

显示: