【问题标题】:Does MVVMCross PictureChooserTask work on Windows Phone 8.1MVVMCross PictureChooserTask 是否适用于 Windows Phone 8.1
【发布时间】:2025-12-10 02:55:01
【问题描述】:

我已经按照 PictureChooserTask (https://www.youtube.com/watch?v=Dyy6U67ouQI&list=PLR6WI6W1JdeYSXLbm58jwAKYT7RQR31-W&index=16) 上的 youtube 视频显示,它全部编译,但是当我按下调用 TakePicture 命令的“拍照”按钮时,应用程序崩溃并返回主屏幕。

我的命令和方法:

private MvxCommand _takePictureCommand;
public ICommand TakePictureCommand
{
    get
    {
        _takePictureCommand = _takePictureCommand ?? new MvxCommand(DoTakePicture);
        return _takePictureCommand;
    }
}

private void DoTakePicture()
{
    _pictureChooserTask.TakePicture(400, 95, OnPicture, () => { });
}

private void OnPicture(Stream pictureStream)
{
    var memoryStream = new MemoryStream();
    pictureStream.CopyTo(memoryStream);
    Bytes = memoryStream.ToArray();
}  

【问题讨论】:

  • 当应用程序崩溃时你会得到什么错误/输出?您是否尝试过使用调试器单步执行?它在哪一行崩溃?
  • +1 @Benjamin 的问题。另外,WindowsPhone 8.1 是指 Silverlight 还是 Jupiter/Xaml?

标签: c# wpf xamarin windows-phone-8.1 mvvmcross


【解决方案1】:

这意味着 Wpf 8.1 RT,这是我学到的 Windows Phone 开发的新标准。我收到此消息:“需要先初始化此对象,然后才能执行请求的操作。”当我单击与 TakePicture 绑定的按钮时

【讨论】:

    【解决方案2】:

    我相信这已在 https://github.com/MvvmCross/MvvmCross/pull/818 中修复 - 所以它应该在 MvvmCross 的 3.2.2 版本中

    【讨论】:

    • 对不起,我这么晚才回答,在一个工作项目中做了很多工作,我们现在自己实现了相机。但我会在今天或下周检查一下。
    • 我们现在试过了,当我们使用 TakePicture 时,它​​只是黑屏,没有任何反应