在WPF应用程序中使用WinRT库。

我在这里关注了这篇文章: http : //blogs.msdn.com/b/eternalcoding/archive/2013/10/29/how-to-use-specific-winrt-api-from-desktop-apps-capturing-a -光使用-您-网络摄像头-到- A-WPF的app.aspx

这一切都很棒…但我如何在WPF中进行预览?

WPF中不提供XAML“CaptureElement”控件。 有没有其他方法可以使用MediaCapture API进行预览?

为什么微软不能使这个控件可用?

迟到的回复,但如果将来有助于人们:在WPF中预览MediaCapture很困难,但可能。 以下是一些代码示例: https : //github.com/mmaitre314/MediaCaptureWPF

在进一步调查后,似乎无法使用XAML捕获元素或WPF中的任何其他XAML元素。

我决定将我的WPF应用程序移植到Win8应用程序。 我保留了现有的后端代码,并使用Brokered WinRT组件引用它。 可以在这里找到一个很好的教程: http : //devhawk.net/2014/04/25/brokered-winrt-components-step-one/关于如何创建WinRT代理组件。

请记住,应用程序必须是侧载的,并且不适用于您要发布到商店的应用程序。

您将不得不设置一种机制来自己显示转换后的BitmapImage ,例如,在Image控件中或在某些表面上作为ImageBrush 。 据我所知,WinRT控件无法在WPF中托管。

CaptureElement可能没有移植到WPF,因为它依赖于WinRT API,并且将一个依赖项引入WPF以获得仅在Windows 8+上可用的API并且仅在Windowsapp store应用中正式支持它没有意义。