Bonjour à tous,
Je viens de remarquer quelque chose de particulier lors d'un simple test avec Graphics.DrawRectangle que je ne comprend pas.
J'ai créer un simple contrôle utilisateur vide et je voulias simplement dessiner un rectangle qui par du point supérieur gauche (0,0) et qui fait tout la largeur et hauteur du control.
J'ai donc fait le code suivant:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| using System.Drawing;
using System.Windows.Forms;
namespace AGPUserControl.Controls
{
public partial class essais : UserControl
{
public essais()
{
InitializeComponent();
}
protected override void OnPaint(PaintEventArgs e)
{
e.Graphics.DrawRectangle(
new Pen(Color.Red, 1),
new Rectangle( 0, 0, this.Size.Width , this.Size.Height));
base.OnPaint(e);
}
}
} |
Ce que je ne comprend pas c'est pourquoi le rectangle monter uniquement la bordure supérieur et gauche alors que les bordures de droite et inférieures ne sont pas visibles alors que la largeur et la hauteur sont bien égales au control (hauteur - 0 = hauteur; largeur - 0 = largeur).
Pourtant, avec
this.Size.Width - 1 , this.Size.Height - 1
L'ensemble des bordures est bien dessiné.
La question est donc : Pourquoi faut il -1 à la largeur et à la hauteur pour afficher l'ensemble des bordures???
Partager