Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1077876
  • 博文数量: 403
  • 博客积分: 10272
  • 博客等级: 上将
  • 技术积分: 4407
  • 用 户 组: 普通用户
  • 注册时间: 2012-02-24 14:22
文章分类

全部博文(403)

文章存档

2012年(403)

分类: 嵌入式

2012-04-08 19:47:01

使用相机需要引用如下命名空间
using Microsoft.Phone.Tasks;

 在这个案例中我们还用到了BitmapImage类,所以我们需要引用命名空间

using System.Windows.Media.Imaging;

 效果图如下

 

 MainPage.xaml文件在初始化的基础上添加了两个元素

"txtName" Text="启动相机" Grid.Row="1" >
        "img" Grid.Row="1" Margin="12,10,12,0" >

 代码隐藏文件

 

View Code

其中CameraCaptureTask,有两个比较实用的方法,也就是我们这里用到的

   Show; 调用相机功能

  Completed ;相机拍摄完成之后可被调用

 

   知识点①:该事件中的e是指,通过该事件传递过来的参数,所以我们可以从中获取一些信息,属性OriginalSource表示产生该事件的元素(在windows phone 中都称之为元素而非控件);

   知识点②:这里调用了Completed方法,加上该方法之后,系统就不会处理相应的路由事件了,这里是指重写的OnManipulationStarted事件 ;

   知识点③: e.Handled = true; 该属性设置表示该路由事件已经处理完毕,不需要在向可视化树的上一层传递;

   知识点④:调用本方法的基类方法,虽然在这里重写了基类方法,但是不可避免的在基类完成的基础性操作,重写没有完成,这样操作会出现一些错误

   知识点⑤:利用SetSource设置的源一定是Stream流,wp支持png和jpeg格式

 这些都是在模拟器上的的操作,如果在真机上测试,请在测试前关闭ZUNE,也可移步 http://www.cnblogs.com/fwind/archive/2011/11/28/2265890.html

  总结: 使用相机是直接调用CameraCaptureTask类的show方法,这样相机就打开了,直到图片生成,再调用Completed方法,在 Completed方法中获得 PhotoResult中该图片的stream 并作为位图的源,并设置image的源;当前图片的文件名也就是PhotoResult的属性OriginalFileName,得到的文件名为该图片的 完整路径

 

 

 

阅读(788) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~