Lorsque je ne définis pas l'arrière-plan de mon panneau, je ne peux pas obtenir d'événements de souris à ce sujet. pourquoi ce comportement? Je suis en mesure d'obtenir des événements de la souris sur le panneau en définissant Background to Transparent, qui est null par défaut. Quelle est la différence entre Background null et Transparent?Problème d'arrière-plan du panneau Wpf
Répondre
Lorsque Background=null
, il n'émet aucune commande de dessin à MILCore lors du rendu, et il ne compte pas la zone entière du contrôle dans le test d'atteinte.
Lorsque Background=Transparent
, il envoie une commande de dessin ordinaire à MILCore lors du rendu, et il contrôle la totalité de la zone dans le test d'atteinte.
Brushes.Transparent
est vraiment un pinceau ordinaire avec son canal alpha (opacité) mis à zéro. Pour cette raison, il agit comme une couleur ordinaire dans la plupart des situations. Si le fond était une couleur ordinaire, les clics de souris seraient détectés, donc ils sont également détectés pour Brushes.Transparent
. Cela dit, il y a quelques endroits où le code détecte Brushes.Transparent et l'optimise en omettant entièrement une commande de dessin. Par exemple, cela se produit pour l'interaction de la fenêtre de transparence avec le système d'exploitation: Le système d'exploitation n'est pas informé que toutes les zones peintes avec Brushes.Transparent
font partie de l'application, donc cliquer dessus ne fait rien. Ceci est fait par un boîtier spécial Brushes.Transparent
à cet effet.
est-ce que tout rendu effectué sur MILCore? – viky
MILCore est le nom de Microsoft pour la partie native (non gérée) de WPF qui gère les données de rendu, les dirige sur les canaux (pour les situations à distance) et appelle Direct3D pour effectuer le rendu. Plus précisément, c'est le pilote et le matériel de votre carte vidéo qui effectuent le rendu réel, avec un retour au logiciel si la carte vidéo ne peut pas le faire. Les pilotes de la carte vidéo sont accessibles via les interfaces définies par Direct3D, qui est appelée par la personne non gérée de WPF "MILCore". –
merci pour toute aide – viky