4

我正在将网络摄像头集成到 WPF 应用程序中。当我将它的 HANDLE 传递给 DirectShow 函数时,我可以在主窗口中看到摄像机源。但这不是我想要的。

主窗体有一个图像控件,我想在其中查看输出。但是,为了做到这一点,我需要控件的句柄。

关于如何做到这一点的任何提示?

在此先感谢,吉安卢卡。

4

2 回答 2

6

WPF 中的图像控件与 Windows 窗体不同,实际上没有 HWND。

WPF 与 Windows 窗体的工作方式不同 - 每个控件都不是围绕带有句柄的本机“窗口”的包装器,而是布局系统在运行时使用 Direct3D 组合在一起。

如果您需要在 WPF 窗口内实际托管网络摄像头的输出,您应该考虑使用HwndHost(或子类)。最简单的方法通常是在WindowsFormsHost中托管一个 Windows 窗体控件,尽管通过自己管理 HWNDHwndHost更有效。

于 2011-09-07T15:23:13.060 回答
0

使用 WindowsFormsHost 和里面的图片框是一个很好的解决方案,我用它来解决类似的问题,我需要一个句柄来显示视频流。但要小心,为了工作,承载 WindowsFormsHost 控件的窗口必须具有 AllowsTransparency="false"!

于 2018-06-18T12:12:48.010 回答