我有一个简单的应用程序,它有一个带有按钮的页面,可以调用Windows phone7中的CameraCaptureTask。我的代码是干净的,并且我已经使用行为将按钮单击响应卸载到ViewModel。我的代码如下所示:
public class MainViewModel : ViewModelBase
{
private readonly CameraCaptureTask cameraCaptureTask;
/// <summary>
/// Initializes a new instance of the MainViewModel class.
/// </summary>
public MainViewModel()
{
if (IsInDesignMode)
{
// Code runs in Blend --> create design time data.
}
else
{
cameraCaptureTask = new CameraCaptureTask();
cameraCaptureTask.Completed += cameraCaptureTask_Completed;
CaptureCommand = new RelayCommand(() => CaptureImage());
}
}
public RelayCommand CaptureCommand { get; set; }
private void cameraCaptureTask_Completed(object sender, PhotoResult e)
{
if (e == null || e.TaskResult != TaskResult.OK)
{
return;
}
else
{
// TODO
}
}
private object CaptureImage()
{
cameraCaptureTask.Show();
return null;
}
}现在,当我运行我的应用程序并点击绑定到'CaptureCommand‘RelayCommand的按钮时,我击中了'CaptureCommand()’方法中的断点,它触发了CameraCaptureTask的'Show()‘方法,导致我的相机成功地出现在设备上。但是,一旦我完成拍照并点击'Accept','cameraCaptureTask_Completed(object sender,Photoresult e)‘事件处理程序就不会被调用。我是不是漏掉了什么?
提前感谢!
发布于 2012-02-15 05:29:23
当你只有一个节目的时候,你为什么要转播这个呢?
尝试将cameraCaptureTask移出构造函数并移入调用的方法中
发布于 2012-02-15 05:36:14
当您使用调试器和连接的设备执行此操作时,是否使用WPConnect工具?
http://msdn.microsoft.com/en-us/library/gg180729(v=VS.92).aspx
Windows Phone Connect工具允许您在不运行Zune软件的情况下建立与设备的串行或U盘连接。在物理Windows Phone设备上测试应用程序时,通常Zune软件正在运行。但是,在Zune软件运行时,您无法测试与照片选择器和相机启动器任务交互的应用程序,因为它会锁定本地媒体数据库。
https://stackoverflow.com/questions/9284204
复制相似问题