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

Gia*_*cci 4 c# wpf directshow directshow.net

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

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

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

提前谢谢,Gianluca.

Ree*_*sey 6

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

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

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

  • @Gianluca:你需要在WindowsFormsHost中放置一个控件 - 我建议在那里放一个Windows.Forms.Panel - 然后使用面板的Handle作为你的HWND. (2认同)