2009-12-16 76 views
3

我想開發一個應用程序,其中的UI部分是由WPF設計的,並且引擎是使用C++開發的。 我想通過使用WindowsFormsHost方法從WPF獲取窗口的句柄來在本機代碼中使用DirectX渲染場景。DirectX和WPF

雖然我沒有得到任何錯誤,但沒有圖像在屏幕上呈現。

就句柄而言,我沒有看到問題,因爲當我使用OpenGL在本地代碼中使用相同的句柄渲染場景時,它可以正常工作。

就初始化部分和渲染部分而言,我沒有看到問題,因爲相同部分的代碼在單獨的Win32項目中工作正常。

什麼可能是這個問題的原因? 正在使用的DirectX版本是DirectX10,使用的操作系統是Vista。

在此先感謝。

回答

3

我認爲你的問題可能是由於WPF也使用DirectX來渲染窗口。 OpenGL很可能僅僅因爲不同而解決了這個問題。

如果要在WPF應用程序中渲染DirectX,請查看使用D3DImage。

http://www.codeproject.com/KB/WPF/D3DImage.aspx

+0

好的。但即使正在使用WindowsFormHost,也會出現問題,因爲我相信WindowsFormHost除了WPF使用的應用程序之外還擁有一個獨立的窗口? – 2009-12-16 09:01:53

+0

嘿,非常感謝。 它使用d3dimage完美工作。 再次感謝。 – 2009-12-16 14:51:25

+1

您不應該需要WindowsFormHost,因爲D3DImage是本機WPF控件。 – 2009-12-16 23:07:38