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.
Remarque : |
---|
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