2011-09-07 59 views
4

我正在将一个摄像头集成到一个WPF应用程序中。当我将HANDLE传递给DirectShow函数时,我可以在主窗口中看到相机馈送。但这不是我想要的。给定一个WPF图像控件,是否可以确定它的HWND?

主要形式具有图像控制,我想在哪里看到的输出。但是,为了做到这一点,我需要控制柄。

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

在此先感谢, 赞布罗塔。

回答

6

在WPF的Image Control,不像Windows窗体,实际上并没有一个HWND。

WPF的工作方式不同于Windows窗体 - 每个控制不在身边一个天然的“窗口”带有手柄的包装,但在布局系统运行时使用的Direct3D而共同组成。

如果您需要实际从一个WPF窗口内的摄像头主机输出,你应该看看使用HwndHost(或子类)。最简单的方法通常是在WindowsFormsHost之内托管Windows窗体控件,尽管通过HwndHost自己管理HWND会更高效。

+0

谢谢!我现在试图使用WindowsFormsHost,但显然没有显示任何内容。我正在研究它,我会让你知道!再次感谢你! –

+1

@Gianluca:您需要在WindowsFormsHost中放置一个控件 - 我建议在那里放置一个Windows.Forms.Panel - 然后使用面板的Handle作为您的HWND。 –

相关问题