Je souhaite supprimer la bordure de redimensionnement de ma fenêtre personnalisée WPF. J'ai déjà trouvé que je dois gérer le message WM_NCCALCSIZE et retourner 0. Cela supprime la bordure et aligne la fenêtre sur le coin supérieur gauche de la fenêtre. Le problème est que, ce faisant, la zone client augmente et le contrôle racine WPF ne le fait pas. Cela crée des bords noirs sur les côtés gauche et inférieur de la fenêtre dont je voudrais me débarrasser.Comment faire pour supprimer la zone non client d'une fenêtre WPF sans utiliser AllowTransparency
J'utilise VS2010 C# Windows XP et je voudrais que cela fonctionne sous Windows XP et Windows 7.
Merci à l'avance.
EDIT: J'ai découvert ce qui cause les bords noirs, ils sont la fenêtre derrière. Maintenant, il semble que le problème est avec l'élément racine de la fenêtre n'occupant pas toute la fenêtre. Lorsque je place sa marge à des valeurs négatives, elle attire la zone noire. Apparemment, la passe de mise en page est correcte et la taille désirée est la même que la fenêtre, mais la taille de rendu est différente.
J'ai également découvert que tout le problème pouvait être résolu en supprimant WS_THICKFRAME du style de la fenêtre. Le problème avec cela est la fonctionnalité de redimensionnement qui est activée uniquement lorsque WS_THICKFRAME est utilisé. J'utilise WM_NCHITTEST pour effectuer le redimensionnement et si la fenêtre sait qu'elle n'a pas de bordure de redimensionnement, elle arrêtera sa fonctionnalité de redimensionnement.
Je voudrais que l'élément racine occupe toute la fenêtre pour éliminer l'arrière-plan de la fenêtre noire ou bien activer la fonctionnalité de redimensionnement natif sans la trame épaisse.
Merci.
Veuillez montrer un exemple de gestion du WM_NCCALCSIZE –