Graphisme

1 - Généralités

1 - Dessiner une forme

Pour dessiner une forme, il faut:
1 - Obtenir un objet graphique
    Ex : Utiliser l'évènement Paint d'un formulaire ou d'un contrôle PictureBox.

2 - Définir la forme à dessiner
Dim Rect As New Rectangle(50, 50, 80, 80)

3 - Définir le crayon ou pinceau à utiliser
Dim Pen1 As New Pen(Color.Blue,5)

4 - Dessiner la forme
e.Graphics.DrawRectangle(Pen1, Rect)

Voici un exemple dessinant un graphique sous forme de barres pour des valeurs mensuelles contenues dans un tableau T(12,1). Les recettes en bleu et les dépenses en rouge sont présentées côte à côte pour chaque mois.
Private Sub pb1_Paint(...
  Dim penB As New Pen(Color.Blue, 8)
  Dim penR As New Pen(Color.Red, 8)
  Dim Li, x, y As Integer
  For Li=1 To 12
    x = Li * 10
    e.Graphics.DrawLine(penB, x, y, x, y + T(Li,0))
    e.Graphics.DrawLine(penR, x + 8, y, x + 8, y + T(Li,1))
  Next
End Sub

2 - Positionner du texte

DrawString (texte, police, pinceau, x, y)

3 - Modifier un dessin

On peut utiliser la méthode Refresh de la PictureBox pour modifier un dessin (par exemple pour mettre à jour un changement d'échelle du graphique).
Private Sub nudEchV_ValueChanged(...
  EchV = nudEchV.Value
  PB1.Refresh()
End Sub

2 - Les polices de caractères

1 - Remplir une liste des polices installées

Le code sera inséré, par exemple, dans la procédure de chargement du formulaire. Tout d'abord, nous définissons : A l'aide d'une boucle For Each, on parcourt chaque police et on ajoute son nom à la liste.
Pour terminer, il ne faut pas oublier d'indiquer la source de données du contrôle utilisé pour l'affichage. Ici un 'ComboBox' nommé 'cbListe'.
Private Sub Form1_Load(...
  Dim Polices As New Collections.ArrayList()
  Dim Pol As FontFamily
  For Each Pol In FontFamily.Families
    Polices.Add(Pol.Name)
  Next
  cbListe.DataSource = Polices
End Sub

2 - Dessiner une police dans un contrôle

Pour pouvoir dessiner, commençons par importer 'System.Drawning'.
Imports System.Drawing
Nous aurons besoin d'un objet graphique.
Dim g As Graphics
Le dessin de la police pourra être créé, par exemple, dans un 'PictureBox' nommé ici 'pbTrace', chaque fois que nous sélectionnerons une police nouvelle dans le ComboBox (voir son remplissage dans le chapitre précédent). Le texte affiché sera "police", suivi du nom de la police.
Il faut commencer par une méthode 'Clear' pour effacer le dessin précédent.
Private Sub cbListe_TextChanged(...
  g = pbTrace.CreateGraphics
  g.Clear(Me.BackColor)
  g.DrawString("Police " & cbListe.Text, New Font
(cbListe.Text, 28), Brushes.Blue, New PointF(0, 0))
End Sub

3 - Effet sur les polices

1 - Rotation

On peut incliner l'angle d'écriture, dans le sens des aiguilles d'une montre, le paramètre étant en degrés.
g.RotateTransform(20)

2 - Texture

Pour écrire du texte avec un pinceau ayant une texture non uniforme, il faut :
Dim Texture = New Bitmap("MonImage.bmp")
Dim Pinceau = New TextureBrush(Texture)
g.DrawString("Police " & cbListe.Text, New Font(cbListe.Text,
Pinceau, New PointF(0, 0))



Statistiques :      Conformité :  Valid XHTML 1.1 © Christian Soulié
Dernière mise à jour le 11 avril 2010.
Périphériques -  Impression