presque chaque fois que j'utilise Graphics.DrawRectangle
ou Graphics.FillRectangle
(les versions int
) il me semble manquer les pixels sur les bordures droite et inférieure du rectangle que je veux dessiner.Comportement des pixels de FillRectangle et DrawRectangle
Quelle est la définition exacte dont les pixels se remplir par
Graphics.FillRectangle(brush,x,y,width,height)
et
Graphics.DrawRectangle(pen,x,y,width,height) // pen is one pixel width, i.e. width=0f
et est-il une explication logique à cela? (Donc je peux enfin rappeler le comportement :) ...)
EDIT:
En utilisant l'application merveilleuse Try GDI+ Oleg Zhuk, j'ai pu trouver une différence curieuse entre FillRectangle
et DrawRectangle
:
FillRectangle(brush,0,0,1,1)
dessine un seul point à (0,0) qui est en quelque sorte compréhensible (c'est un rectangle avec une largeur et une hauteur après tout). D'autre part, dessine un petit rectangle de 2 x 2 pixels.
Le même comportement est montré pour d'autres combinaisons de largeur/hauteur, DrawRectangle
étend toujours un pixel plus à gauche et la partie inférieure (qui est un peu comme gênant lors de l'utilisation de la propriété ClientRectangle
pour dessiner un cadre autour d'un témoin)
Ma première question résolue (comment à se comporter ...) il reste encore le deuxième: Pourquoi se comportent-ils de cette façon?
Désolé pour ma réponse supprimée - il était en retard (par mon horloge biologique) et je ne lisais pas correctement, juste sauter aux conclusions. – Steve314