Bonjour,
j'integre en ce moment une fenêtre OpenGL dans une interface WPF.
Je me suis basé sur le TAO Framework, dont j'ai modifié le SimpleOpenGLControl.
Ce contrôle est intégré dans l'interface WPF via un WindowsFormsHostController.
Problème: les contrôles WPF censés s'afficher au dessus de la fenêtre OpenGL sont clippés (ie: la fenêtre OpenGL est toujours au 1er plan).
Un peu de recherche m'a apris que c'est....normal: ca vient du WindowsFormsHostController, qui utilise son propre HWND contrairement aux autres contrôles WPF. Du coup le Zindex et cie, ca lui est bien égal...
Bref, c pas les post là dessus qui manquent, par exemple:
http://www.opengl.org/discussion_boa...68629&page=all
En gros 4 solutions:
1) Faire du rendu offscreen et afficher l'image obtenue via un ImageControl ou équivalent => super pour les perfs....
2) Utiliser un "Overlay control, panel ou window" transparent, à mettre par dessus le contrôle OpenGL, et qui contiendra les contrôles WPF
=> je tombe souvent la dessus, sans jamais trouver d'exemple qui marche...la ca fait 2 jours que je teste dans tous les sens donc si quelqu'un sait comment faire ca....
3) Utiliser Direct3D: là pas de probleme, il y a D3DImage qui s'occupe de gerer tout ca
=> A quand une OGLImage Messieurs de Microsoft??? GRRRRRRRRR!!!!!!!
4) S'arranger pour qu'aucun popup ne s'affiche au dessus de la fenêtre OpenGL
=> mouais...
Bref, en gros j'ai besoin d'aide pour le 2)! Et d'autres idées sont bien sûr les bienvenues!
Il y a quand même un truc qui me chiffonne: sur le screenshot, il y a 2 fenêtres OpenGL. Sur la droite, on voit que le menu "Einstellungen" (désolé pour l'allemand) passe "derriere" la fenêtre OpenGL. C'est le problème décrit dans ce post.
En revanche, le menu déroulant ("Demodaten") s'affiche, lui, correctement. Et là du coup je ne capte plus...
Je vais contacter les développeurs (l'interface WPF de cette app est sous traitée) pour en savoir plus sur les propriétés de ce menu mais en attendant, si qq'un a une idée...
Partager