Comment : définir la largeur et l'alignement du stylet

Lorsque vous créez un Penstylet, vous pouvez fournir la largeur du stylet en tant qu’arguments au constructeur. Vous pouvez également modifier la largeur du stylet avec la Width propriété de la Pen classe.

Une ligne théorique a une largeur de 0. Lorsque vous dessinez une ligne de largeur de 1 pixel, les pixels sont centrés sur la ligne théorique. Si vous dessinez une ligne de plus d’un pixel, les pixels sont centrés sur la ligne théorique ou apparaissent à un côté de la ligne théorique. Vous pouvez définir la propriété d’alignement du stylet d’un Pen pour déterminer comment les pixels dessinés avec ce stylet seront positionnés par rapport aux lignes théoriques.

Les valeurs Center, Outsetet Inset qui apparaissent dans les exemples de code suivants sont membres de l’énumération PenAlignment .

L’exemple de code suivant dessine deux fois une ligne : une fois avec un stylet noir de largeur 1 et une fois avec un stylet vert de largeur 10.

Pour varier la largeur d’un stylet

  • Définissez la valeur de la Alignment propriété Center sur (valeur par défaut) pour spécifier que les pixels dessinés avec le stylet vert seront centrés sur la ligne théorique. L’illustration suivante montre la ligne obtenue.

    A black thin line with green highlight.

    L’exemple de code suivant dessine deux fois un rectangle : une fois avec un stylet noir de largeur 1 et une fois avec un stylet vert de largeur 10.

    Pen blackPen = new Pen(Color.FromArgb(255, 0, 0, 0), 1);
    Pen greenPen = new Pen(Color.FromArgb(255, 0, 255, 0), 10);
    greenPen.Alignment = PenAlignment.Center;
    
    // Draw the line with the wide green pen.
    e.Graphics.DrawLine(greenPen, 10, 100, 100, 50);
    
    // Draw the line with the thin black pen.
    e.Graphics.DrawLine(blackPen, 10, 100, 100, 50);
    
    Dim blackPen As New Pen(Color.FromArgb(255, 0, 0, 0), 1)
    Dim greenPen As New Pen(Color.FromArgb(255, 0, 255, 0), 10)
    greenPen.Alignment = PenAlignment.Center
    
    ' Draw the line with the wide green pen.
    e.Graphics.DrawLine(greenPen, 10, 100, 100, 50)
    
    ' Draw the line with the thin black pen.
    e.Graphics.DrawLine(blackPen, 10, 100, 100, 50)
    
    

Pour modifier l’alignement d’un stylet

  • Définissez la valeur de la Alignment propriété pour Center spécifier que les pixels dessinés avec le stylet vert seront centrés sur la limite du rectangle.

    L’illustration suivante montre le rectangle résultant :

    A rectangle drawn with black thin lines with green highlight.

    Pen blackPen = new Pen(Color.FromArgb(255, 0, 0, 0), 1);
    Pen greenPen = new Pen(Color.FromArgb(255, 0, 255, 0), 10);
    greenPen.Alignment = PenAlignment.Center;
    
    // Draw the rectangle with the wide green pen.
    e.Graphics.DrawRectangle(greenPen, 10, 100, 50, 50);
    
    // Draw the rectangle with the thin black pen.
    e.Graphics.DrawRectangle(blackPen, 10, 100, 50, 50);
    
    Dim blackPen As New Pen(Color.FromArgb(255, 0, 0, 0), 1)
    Dim greenPen As New Pen(Color.FromArgb(255, 0, 255, 0), 10)
    greenPen.Alignment = PenAlignment.Center
    
    ' Draw the rectangle with the wide green pen.
    e.Graphics.DrawRectangle(greenPen, 10, 100, 50, 50)
    
    ' Draw the rectangle with the thin black pen.
    e.Graphics.DrawRectangle(blackPen, 10, 100, 50, 50)
    
    

Pour créer un stylet inset

  • Modifiez l’alignement du stylet vert en modifiant la troisième instruction de l’exemple de code précédent comme suit :

    greenPen.Alignment = PenAlignment.Inset;
    
    greenPen.Alignment = PenAlignment.Inset
    
    

    À présent, les pixels de la ligne verte large apparaissent à l’intérieur du rectangle, comme illustré dans l’illustration suivante :

    A rectangle drawn with black lines with the wide green line inside.

Voir aussi