Partager via


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

Mise à jour : November 2007

Dessine le Stroke sur le Bitmap spécifié avec le DrawingAttributes spécifié.

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

Syntaxe

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

instance.Draw(destinationBitmap, stroke, _
    da)
public void Draw(
    Bitmap destinationBitmap,
    Stroke stroke,
    DrawingAttributes da
)
public:
void Draw(
    Bitmap^ destinationBitmap, 
    Stroke^ stroke, 
    DrawingAttributes^ da
)
public void Draw(
    Bitmap destinationBitmap,
    Stroke stroke,
    DrawingAttributes da
)
public function Draw(
    destinationBitmap : Bitmap, 
    stroke : Stroke, 
    da : DrawingAttributes
)

Paramètres

Exemples

Dans cet exemple, la collection Strokes complète d'un objet Ink associé à un objet InkOverlay est placée sur une image bitmap chargée à partir d'un fichier.

De plus, lors du dessin des objets Stroke sur l'image bitmap, 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.

L'appel à la méthode Draw n'affiche pas l'image et les traits. À la place, il fusionne les données de rendu du trait avec les données d'image bitmap pour préparer l'affichage. L'image bitmap (modifiée avec les données de rendu du trait) devient visible via un appel à la méthode DrawImage de l'objet Graphics(page pouvant être en anglais) associé à un objet Panel(page pouvant être en anglais).

' get the Bitmap object loaded from a file
' scale the image to match the panel size
Dim bgImage As Bitmap = New Bitmap(New Bitmap(imageFileName), Me.panelForDraw.Size)
' 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 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(bgImage, oneStroke, da)
    Next
End Using
' now display the bitmap (with the strokes) on the panel
Using g As Graphics = Me.panelForDraw.CreateGraphics()
    g.DrawImage(bgImage, 0, 0)
End Using
bgImage.Dispose()
// get the Bitmap object loaded from a file
// scale the image to match the panel size
Bitmap bgImage = new Bitmap(new Bitmap(imageFileName), this.panelForDraw.Size);
// 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 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(bgImage, oneStroke, da);
    }
}
// now display the bitmap (with the strokes) on the panel
using (Graphics g = this.panelForDraw.CreateGraphics())
{
    g.DrawImage(bgImage, 0, 0);
}
bgImage.Dispose();

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