照片的选择与拍照
从媒体库中选择照片
PhotoChooserTask
用摄像头拍照
CameraCaptureTask
这两个类是两个Chooser,因而其工作模式符合前文所述的任务模型,在使用方式上,也完全符合Chooser的使用方式。
下面展示它们的使用:
(1)创建如图所示的XAML界面
(2)
//定义Chooser对象
CameraCaptureTask camera;
PhotoChooserTask photoChooser;
(3)
//实例化
camera = new CameraCaptureTask();
camera.Completed += new EventHandler<PhotoResult>(photoChooser_Completed);
photoChooser = new PhotoChooserTask();
photoChooser.Completed += new EventHandler<PhotoResult>(photoChooser_Completed);
(4)
/// <summary>
/// 拍照按钮事件处理
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnTakePhoto_Click(object sender, RoutedEventArgs e)
{
camera.Show();
}
/// <summary>
/// 选择照片事件处理
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnChoosePhoto_Click(object sender, RoutedEventArgs e)
{
photoChooser.ShowCamera = true;
photoChooser.Show();
}
(5)
//当完成选择器任务时执行
void photoChooser_Completed(object sender, PhotoResult e)
{
if (e.TaskResult == TaskResult.OK)
{
BitmapImage bitmap = new BitmapImage();
bitmap.SetSource(e.ChosenPhoto);
imgPhoto.Source = bitmap;
txtPhoneName.Text = e.OriginalFileName;
}
}
PhotoChooserTask类的ShowCamera属性决定在显示的选择图片界面中是否显示摄像头标志以允许用户即时拍照并返回。此处设为true,则用户可以及时拍照并返回。
在返回结果中,e. OriginalFileName包含了用户选择的照片的二进制流,e.OriginalFileName包含了用户选择的照片的全路径文件名.
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。