Partager via


InkOverlay.Draw, méthode

Mise à jour : November 2007

Définit un rectangle dans lequel retracer l'entrée manuscrite dans l'objet InkOverlay.

Espace de noms :  Microsoft.Ink
Assembly :  Microsoft.Ink (dans Microsoft.Ink.dll)

Syntaxe

'Déclaration
Public Sub Draw ( _
    rDrawRect As Rectangle _
)
'Utilisation
Dim instance As InkOverlay
Dim rDrawRect As Rectangle

instance.Draw(rDrawRect)
public void Draw(
    Rectangle rDrawRect
)
public:
void Draw(
    Rectangle rDrawRect
)
public void Draw(
    Rectangle rDrawRect
)
public function Draw(
    rDrawRect : Rectangle
)

Paramètres

  • rDrawRect
    Type : System.Drawing.Rectangle
    Rectangle dans lequel retracer l'entrée manuscrite, selon les coordonnées en pixels.

Notes

Lorsque le paramètre rDrawRect a la valeur nullune référence null (Nothing en Visual Basic) (Nothing en Microsoft Visual Basic .NET), la fenêtre entière est redessinée.

Cette méthode est utile pour redessiner des traits qui ont été modifiés par programme. Vous pouvez également appeler la méthode Control.Invalidate (page pouvant être en anglais), mais elle redessine tous les traits de l'objet InkOverlay. Vous pouvez également appeler la méthode Renderer.Draw à cette fin, mais l'objet Renderer n'est pas capable de dessiner les traits ainsi sélectionnés, car il ne sait pas quels traits se trouvent dans la collection Selection.

ms569275.alert_note(fr-fr,VS.90).gifRemarque :

La propriété AutoRedraw doit avoir la valeur true pour que le dessin soit effectué.

Exemples

Cet exemple C# est une méthode qui modifie la couleur de tous les traits dans une collection Strokes qui appartiennent à l'objet Ink associé à un objet InkOverlay, theInkOverlay. La modification de la propriété DrawingAttributes d'un objet Stroke n'est pas visible automatiquement, ni immédiatement. Vous pouvez appeler les méthodes Invalidate ou Refresh (page pouvant être en anglais) sur le contrôle associé à theInkOverlay, mais cela redessine tous les objets Stroke de theInkOverlay. Pour atteindre de meilleures performances, utilisez la méthode Draw sur le cadre englobant de la collection Strokes. Notez que cela implique la conversion des coordonnées du cadre englobant. Elles passent ainsi de coordonnées d'espace d'entrée manuscrite à des coordonnées en pixels.

private void ChangeColor(Strokes theStrokes, Color newColor)
{
    // Change the color of theStrokes
    foreach (Stroke stroke in theStrokes)
    {
        stroke.DrawingAttributes.Color = newColor;
    }

    // Convert bounding box to pixel coordinates
    Graphics g = CreateGraphics();
    Rectangle strokesBounds = theStrokes.GetBoundingBox();
    Point topLeft = strokesBounds.Location;
    Point bottomRight = strokesBounds.Location + strokesBounds.Size;
    theInkOverlay.Renderer.InkSpaceToPixel(g, ref topLeft);
    theInkOverlay.Renderer.InkSpaceToPixel(g, ref bottomRight);
    g.Dispose()
    strokesBounds = new Rectangle(topLeft, 
        new Size(bottomRight.X - topLeft.X, bottomRight.Y - topLeft.Y));

    // Redraw the strokes
    theInkOverlay.Draw(strokesBounds);
}

Cet exemple Visual Basic .NET est une méthode qui modifie la couleur de tous les traits dans une collection Strokes appartenant à l'objet Ink associé à un objet InkOverlay, theInkOverlay. La modification de la propriété DrawingAttributes d'un objet Stroke n'est pas visible automatiquement, ni immédiatement. Vous pouvez appeler les méthodes Invalidate ou Refresh (page pouvant être en anglais) sur le contrôle associé à theInkOverlay, mais cela redessine tous les objets Stroke de theInkOverlay. Pour atteindre de meilleures performances, utilisez la méthode Draw sur le cadre englobant de la collection Strokes. Notez que cela implique la conversion des coordonnées du cadre englobant. Elles passent ainsi de coordonnées d'espace d'entrée manuscrite à des coordonnées en pixels.

Private Sub ChangeColor(ByVal theStrokes As Strokes, ByVal newColor As Color)
    ' Change the color of theStrokes
    Dim theStroke As Stroke
    For Each theStroke In theStrokes
        theStroke.DrawingAttributes.Color = newColor
    Next

    'Convert bounding box to pixel coordinates
    Dim g As Graphics = CreateGraphics()
    Dim strokesBounds As Rectangle = theStrokes.GetBoundingBox()
    Dim topLeft As Point = strokesBounds.Location
    Dim bottomRight As Point = New Point(strokesBounds.Right, strokesBounds.Bottom)
    theInkOverlay.Renderer.InkSpaceToPixel(g, topLeft)
    theInkOverlay.Renderer.InkSpaceToPixel(g, bottomRight)
    g.Dispose()
    strokesBounds = New Rectangle(topLeft, _
        New Size(bottomRight.X - topLeft.X, bottomRight.Y - topLeft.Y))

    'Redraw the strokes
    theInkOverlay.Draw(strokesBounds)

    End Sub

Plateformes

Windows Vista

Le .NET Framework et le .NET Compact Framework ne prennent pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.

Informations de version

.NET Framework

Pris en charge dans : 3.0

Voir aussi

Référence

InkOverlay, classe

Membres InkOverlay

Microsoft.Ink, espace de noms

Renderer.Draw