某些容器中的 CameraCaptureUI

CameraCaptureUI in some container

我喜欢在我的 windows 商店应用程序中使用默认的 CameraCaptureUI 创建屏幕。可以使用以下代码启动 CameraCaptureUI

var cameraUI = new CameraCaptureUI();
var capturedMedia = await cameraUI.CaptureFileAsync(CameraCaptureUIMode.Photo);

此代码在整个屏幕上打开相机。我需要的是我的 winstore 应用程序中的 运行 相机,例如在一些容器中,并在同一屏幕上添加更多控件。

如果可能的话,你有什么线索吗?如果是,执行此场景的最佳方法是什么?

您可以使用 MediaCapture 控件在您的应用中创建自定义照片 UI。 CameraCaptureUI 不可自定义。它旨在成为获得默认 UI.

的简单方法

https://msdn.microsoft.com/en-us/library/windows/apps/xaml/windows.media.capture.mediacapture.aspx

1) 添加功能 "Microphone" 和 "Webcam".

2) 在视图中定义CaptureElement

 <CaptureElement Name="captureElement"/>

3) 在 class MediaCapture.

中创建字段
private readonly MediaCapture _mediaCapture = new MediaCapture();

4) 创建用来自相机的实时内容填充 CaputreElement 的方法。

async Task ShowPreview()
{
    try
    {
        await _mediaCapture.InitializeAsync();
        captureElement.Source = _mediaCapture;
        await _mediaCapture.StartPreviewAsync();
    }
    catch (Exception)
    {
        // exception handling ...            
    }
}

5) 调用ShowPreview方法:

ShowPreview();