2011-09-07 26 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。 –

相關問題