Je peux penser à deux façons d'atteindre cet effet (non rectangulaire superposition semi-transparente sur le dessus d'une fenêtre qui s'étend derrière les limites de la fenêtre). NE PAS UTILISER CE CODE DANS LE CODE DE PRODUCTION (AllowTransparency est lent et très buggé) - Rend la fenêtre plus grande que le contenu réel, placez AllowsTransaprencey = "True" de sorte que la zone "outside" de la fenêtre est
transparent, maintenant tout ce que vous avez à faire pour la popup est d'ajouter un autre visuel dans le même conteneur que la "fenêtre".
Deuxième option, utilisez un popup, vous devrez positionner votre popup avec soin, appelez SetWindowRgn via interop pour le rendre non rectangulaire et appelez la fonction API Win32 qui définit la valeur de transparence (désolé, ne vous souvenez pas du nom à la moment) pour le rendre semi-transparent. La première option est facile à implémenter et sera meilleure que la deuxième option, mais elle est plus lente et vous rencontrerez toutes sortes de bogues bizarres (y compris des écrasements avec certains pilotes d'affichage) - Je le sais par expérience, quand je changé le logiciel que je vends de AllowTransparency à SetWindowRgn 90% des rapports d'écrasement ont disparu.
La deuxième option nécessite un grand nombre d'appels API Win32 natifs, mais cela devrait fonctionner.