Partager via


Renderer.Draw, méthode (Graphics, Stroke, DrawingAttributes)

Mise à jour : November 2007

Dessine l'objet Stroke, avec DrawingAttributes, sur la surface Graphics (page pouvant être en anglais) spécifiée.

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

Syntaxe

'Déclaration
Public Sub Draw ( _
    g As Graphics, _
    stroke As Stroke, _
    da As DrawingAttributes _
)
'Utilisation
Dim instance As Renderer
Dim g As Graphics
Dim stroke As Stroke
Dim da As DrawingAttributes

instance.Draw(g, stroke, da)
public void Draw(
    Graphics g,
    Stroke stroke,
    DrawingAttributes da
)
public:
void Draw(
    Graphics^ g, 
    Stroke^ stroke, 
    DrawingAttributes^ da
)
public void Draw(
    Graphics g,
    Stroke stroke,
    DrawingAttributes da
)
public function Draw(
    g : Graphics, 
    stroke : Stroke, 
    da : DrawingAttributes
)

Paramètres

Notes

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

Si possible, utilisez la surcharge appropriée qui accepte un objet Graphics (page pouvant être en anglais) plutôt que celle qui accepte un IntPtr (page pouvant être en anglais).

La largeur du stylet est ajustée en fonction de la façon dont vous utilisez la méthode SetViewTransform. Spécifiquement, la largeur du stylet est multipliée (ou a mise à l'échelle) par la racine carrée du déterminant de la transformation d'affichage.

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

Si vous n'avez pas explicitement affecté de valeur à la largeur du stylet, la largeur par défaut est 53. Vous devez multiplier la largeur du stylet par la racine carrée du déterminant pour obtenir le cadre englobant approprié. La hauteur et la largeur du cadre englobant sont augmentées de la moitié de cette valeur dans chaque direction.

Par exemple, si la largeur du stylet est 53, la racine carrée du déterminant est 50 et le cadre englobant est (0, 0, 1000, 1000). Le réglage de la largeur du stylet au cadre englobant dans chaque direction est calculé de la façon suivante : (53 * 50) / 2 . Le côté droit et le bas sont incrémentés d'une unité. Un cadre englobant rendu de (-1325, -1325, 2326, 2326) est créé.

L'objet Renderer force l'affectation de la valeur 0,0 pour les origines des fenêtres d'affichage. Tous les paramètres existants sont enregistrés et restaurés, mais ils ne sont pas utilisés par le Renderer. Pour procéder au défilement, utilisez les méthodes GetViewTransform et GetObjectTransform de l'objet Renderer.

Exemples

Dans cet exemple, l'ensemble de la collection Strokes d'un objet Ink associé à un objet InkOverlay est affichée sur un Panel (page pouvant être en anglais), différent de celui associé à l'objet InkOverlay lui-même.

De plus, lors de l'affichage des objets Stroke dans l'autre panneau, un objet DrawingAttributes modifié est utilisé. Des modifications sont appliquées ; elles inversent la couleur du trait et doublent sa largeur. L'objet DrawingAttributes modifié est ensuite passé à la méthode Draw via le paramètre da. Cela n'affecte pas les DrawingAttributes des traits d'origine.

' Access to the Ink.Strokes property returns a copy of the Strokes object.
' This copy must be implicitly (via using statement) or explicitly
' disposed of in order to avoid a memory leak.
Using allStrokes As Strokes = mInkOverlay.Ink.Strokes
    ' get a graphics object for another panel
    Using g As Graphics = Me.panelForDraw.CreateGraphics()
        ' get a Renderer object. We could have used
        ' mInkOverlay.Renderer, this is another way
        Dim R As Renderer = New Renderer()
        ' traverse the stroke collection
        For Each oneStroke As Stroke In allStrokes
            Dim da As DrawingAttributes = oneStroke.DrawingAttributes.Clone()
            ' invert the stroke color
            Dim cR As Byte = Not da.Color.R
            Dim cG As Byte = Not da.Color.G
            Dim cB As Byte = Not da.Color.B
            da.Color = Color.FromArgb(da.Color.A, cR, cG, cB)
            ' double the stroke width
            da.Width *= 2
            ' draw the stroke
            R.Draw(g, oneStroke, da)
        Next
    End Using
End Using
// Access to the Ink.Strokes property returns a copy of the Strokes object.
// This copy must be implicitly (via using statement) or explicitly
// disposed of in order to avoid a memory leak.
using (Strokes allStrokes = mInkOverlay.Ink.Strokes)
{
    // get a graphics object for another panel
    using (Graphics g = this.panelForDraw.CreateGraphics())
    {
        // get a Renderer object. We could have used
        // mInkOverlay.Renderer, this is another way
        Renderer R = new Renderer();
        // traverse the stroke collection
        foreach (Stroke oneStroke in allStrokes)
        {
            DrawingAttributes da = oneStroke.DrawingAttributes.Clone();
            // invert the stroke color
            byte cR = (byte)~(da.Color.R);
            byte cG = (byte)~(da.Color.G);
            byte cB = (byte)~(da.Color.B);
            da.Color = Color.FromArgb(da.Color.A, cR, cG, cB);
            // double the stroke width
            da.Width *= 2;
            // draw the stroke
            R.Draw(g, oneStroke, da);
        }
    }
}

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

Renderer, classe

Membres Renderer

Draw, surcharge

Microsoft.Ink, espace de noms

Renderer.SetViewTransform

DrawingAttributes

Strokes

Stroke