3 votes

Le contrôle WPF à l'intérieur d'un winform transparent ne s'affiche pas

Je crée un simple UserControl WPF (n'importe quel contrôle fera l'affaire) et je l'insère dans un Winform (en utilisant un ElementHost). Cela fonctionne bien. Le contrôle WPF est intégré dans le WinForm et lorsque le WinForm est déplacé, le contrôle WPF se déplace avec lui, comme le ferait un contrôle WinForm. Lorsque je change le WinForm en transparent en fixant la TranparencyKey à la même valeur que le BackColor, certains problèmes surviennent : - Le contrôle WPF n'est pas affiché - à la place, un rectangle noir s'affiche - Si le WinForm est déplacé sur l'écran, le contrôle WPF apparaît à son emplacement d'origine, comme s'il était couvert par le WinForm.

La modification des propriétés de l'ElementHost (telles que BackColorTransparent) n'a pas modifié le comportement. En réglant la BackColor et la TransparencyKey du WinForm sur Black, le problème du rectangle noir a été résolu, mais le contrôle WPF est resté à sa place initiale lorsque le WinForm a été déplacé.

Notez également que ces problèmes se produisent sous Windows XP SP3 (qui est notre OS cible) mais pas sous Windows 2003. (Nous n'avons pas vérifié sous Vista et Windows 7).

Une idée pour avoir un Winform transparent avec un contrôle WPF à l'intérieur et obtenir un comportement normal ?

0voto

Geek Points 2250

Avez-vous défini la propriété background sur le contrôle WPF ? Par défaut, il hérite de son conteneur parent et s'il n'est pas présent, il le fera. Essayez de définir la propriété d'arrière-plan du UserControl sur blanc ou gris et votre problème devrait disparaître.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X