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

时间:2014-10-29 14:35:13

标签: c# wpf xaml windows-runtime webcam

我在这里关注了这篇文章: http://blogs.msdn.com/b/eternalcoding/archive/2013/10/29/how-to-use-specific-winrt-api-from-desktop-apps-capturing-a-photo-using-your-webcam-into-a-wpf-app.aspx

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

XAML" CaptureElement"控制在WPF中不可用。有没有其他方法可以使用MediaCapture API进行预览?

为什么Microsoft不能使此控件可用?

3 个答案:

答案 0 :(得分:3)

延迟回复,但如果将来帮助那些人:在WPF中预览MediaCapture很困难,但可能。这是一些代码示例: https://github.com/mmaitre314/MediaCaptureWPF

答案 1 :(得分:1)

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

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

请注意,该应用必须是侧载的,并且不适用于您要发布到商店的应用。

答案 2 :(得分:0)

您必须设置一种机制来自行显示已转换的BitmapImage,例如,在Image控件中或在某些表面上显示ImageBrush。据我所知,WinRT控件无法在WPF中托管。

CaptureElement可能没有移植到WPF,因为它依赖于WinRT API,并且将一个依赖项引入WPF对于仅在Windows 8+上可用的API而言是没有意义的,并且只有官方支持在Windows应用商店应用中。