给定WPF图像控制,是否可以确定其HWND?

时间:2011-09-07 15:16:18

标签: c# wpf directshow directshow.net

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

主窗体有一个Image控件,我想看看输出。但是,为了做到这一点,我需要控件的Handle。

有关如何执行此操作的任何提示?

提前致谢, 詹卢卡。

2 个答案:

答案 0 :(得分:6)

与Windows窗体不同,WPF中的Image Control实际上没有HWND。

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

如果您需要在WPF窗口内实际托管来自Webcam的输出,您应该查看使用HwndHost(或子类)。最简单的方法通常只是在WindowsFormsHost内托管Windows窗体控件,尽管通过HwndHost自己管理HWND效率更高。

答案 1 :(得分:0)

使用WindowsFormsHost和里面的图片框是一个很好的解决方案,我用于类似的问题,我需要一个句柄来显示视频流。但要小心,为了工作,托管WindowsFormsHost控件的Window必须具有AllowTransparency =“false”!