【问题标题】:Calling CameraCaptureUI from Winforms application从 Winforms 应用程序调用 CameraCaptureUI
【发布时间】:2019-08-09 23:29:57
【问题描述】:

我希望能够从 winforms 应用程序调用 UWP 类 Windows.Media.Capture.CameraCaptureUI。

我一直在研究 Microsoft Community Toolkit 以及其他选项,例如 DirectShow,但没有什么能比得上 Windows 10 媒体捕获类。似乎社区工具包部分是围绕 winforms 和 UWP 的互操作性构建的,但我在文档中找不到对 CameraCaptureUI 的任何引用,或者如何从 winform 中一般地调用它。

以下代码在 UWP 应用程序中运行良好:

CameraCaptureUI dialog = new CameraCaptureUI();
Size aspectRatio = new Size(16, 9);
dialog.PhotoSettings.CroppedAspectRatio = aspectRatio;
StorageFile file = await dialog.CaptureFileAsync(CameraCaptureUIMode.PhotoOrVideo);
StorageFolder folder = KnownFolders.PicturesLibrary;

if (file != null) await file.MoveAsync(folder);

它提供了一个相机对话框,而不仅仅是显示相机 UI。我想从传统风格的 winforms 应用程序中调用此代码。其他人解决了这个问题吗?

澄清一下:我的客户想在 Surface Pro 设备上使用 winforms 应用程序。该设备有两个摄像头,一个前置摄像头和一个“自拍”式摄像头。解决方案最好同时包含这两者,这就是为什么我喜欢使用内置 Windows 10 相机 UI 的想法。

【问题讨论】:

    标签: c# winforms uwp


    【解决方案1】:

    源自此案例replyCameraCaptureUI 类不适用于 WinForm 应用程序。 要捕获照片,请使用 MediaCapture 类,这是可用的 WinForms 应用程序,这是 code sample 对于相机预览 UI,您可以参考 document

    【讨论】:

    • 嗨,尼科。这是一个很好的答案,我应该在我的问题中澄清更多。我的客户想在新的 Surface Pro 设备上使用 Windows 窗体应用程序。我对使用 MediaCapture 而不是内置相机 UI 的担忧是,它无法控制相机选择,从“自拍”移动到前置相机。这就是为什么我如此迷恋 CamerCaptureUI 的对话框。它看起来很完美,并且会启动 Surface Pro 的内置摄像头。你对这个问题有什么看法?感谢您的帮助!
    • 请查看line,如果要使用前置摄像头,请将参数设置为Windows.Devices.Enumeration.Panel.Front。如果答案有帮助,请标记它。
    • 嗨 Nico,我想我错过了一些东西。您给出的几个答案,包括最后一个链接参考 Windows 通用解决方案 (UWP),我不能在 winforms 应用程序中使用它。您刚刚在导入 Windows.Media.Capture(一个 UWP 程序集)的解决方案的一部分中引用的代码行。我真的很想能够使用它,但同样,这是一个 winforms 应用程序。从我所见,我无法引用该程序集。我是不是误会了什么??
    • 请检查此reply 并将 Windows.winmd 添加到项目参考中。
    猜你喜欢
    • 2013-11-26
    • 2010-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多