2009-12-16 5 views
3

J'essaye de développer une application où la partie de l'interface utilisateur est conçue par WPF et le moteur est développé en utilisant C++. J'essaye de rendre une scène en utilisant DirectX en code natif en obtenant le handle de la fenêtre à partir de WPF en utilisant la méthode WindowsFormsHost.DirectX et WPF

Bien que je n'obtiens aucune erreur, aucune image ne s'affiche à l'écran.

En ce qui concerne le handle, je ne vois pas de problème car lorsque je rends la scène en utilisant OpenGL en utilisant le même handle en code natif, cela fonctionne correctement.

En ce qui concerne la partie d'initialisation et la partie de rendu, je ne vois pas de problème car la même partie du code fonctionne correctement dans un projet Win32 distinct.

Quelle pourrait être la cause de ce problème? La version de DirectX utilisée est DirectX10 et OS utilisé est Vista.

Merci d'avance.

Répondre

3

Je pense que votre problème peut être dû au fait que WPF utilise également DirectX pour rendre la fenêtre. OpenGL contourne probablement le problème simplement en étant différent.

Si vous souhaitez afficher DirectX dans une application WPF, consultez D3DImage.

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

+0

Ok. Mais le problème se produira-t-il même si le WindowsFormHost est utilisé, parce que je crois que WindowsFormHost héberge une fenêtre séparée de celle de l'application utilisée par WPF? –

+0

Hey merci beaucoup. Cela fonctionne parfaitement avec d3dimage. Merci encore. –

+1

Vous ne devriez pas avoir besoin de WindowsFormHost car un D3DImage est un contrôle WPF natif. –