信息
您所需的主题如下所示。但此主题未包含在此库中。

如何使用 Windows Phone 相机拍摄任务

2012/2/9

通过相机拍摄任务,用户能够从您的应用程序中使用内置“相机”应用程序拍摄照片。如果用户完成此任务,将会引发一个事件,并且事件处理程序将会在结果中收到一张照片。

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

注意注意:

从 Windows Phone OS 7.1 开始,您便可以直接在自己的应用程序中使用设备相机。有关更多信息,请参阅 Windows Phone 的相机和照片概述

Windows Phone 模拟器上没有相机,但是模拟器可以向应用程序返回一张默认的图像。若要在实际设备上测试相机拍摄任务,请使用“连接工具”启动您的应用程序。有关更多信息,请参阅如何:使用 Windows Phone 的连接工具

使用相机拍摄任务

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

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

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

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

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

    void cameraCaptureTask_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;
        }
    }
    

显示:
© 2014 Microsoft