Ink.DeleteStrokes, méthode (Strokes)
Mise à jour : November 2007
Supprime la collection Strokes spécifiée de l'objet Ink.
Espace de noms : Microsoft.Ink
Assembly : Microsoft.Ink (dans Microsoft.Ink.dll)
Syntaxe
'Déclaration
Public Sub DeleteStrokes ( _
strokes As Strokes _
)
'Utilisation
Dim instance As Ink
Dim strokes As Strokes
instance.DeleteStrokes(strokes)
public void DeleteStrokes(
Strokes strokes
)
public:
void DeleteStrokes(
Strokes^ strokes
)
public void DeleteStrokes(
Strokes strokes
)
public function DeleteStrokes(
strokes : Strokes
)
Paramètres
- strokes
Type : Microsoft.Ink.Strokes
Collection Strokes à supprimer.
Notes
L'objet Ink renumérote les indices des objets Stroke restants dans l'objet Ink si les objets Stroke supprimés ne se trouvent pas à la fin de la collection Strokes de l'objet Ink.
La méthode DeleteStrokes peut provoquer une erreur si elle est appelée pendant que l'utilisateur est en train d'appliquer de l'entrée manuscrite de façon active.
Remarque : |
---|
Une collection Strokes qui pointe sur une propriété Ink.Strokes devient non valide lorsque les objets Stroke contenus dans la collection d'origine sont supprimés de l'objet Ink. Par exemple, s'il existe une collection nommée Strokes, theStrokesToo, basée sur la propriété Strokes d'un objet Ink, theStrokes, et que vous appelez la méthode DeleteStrokes sur theStrokes, theStrokesToo devient non valide. |
Pour supprimer un seul objet Stroke à la fois, appelez la méthode DeleteStroke.
Exemples
Cet exemple contient une fonction qui supprime tous les objets Stroke de l'objet InkOverlay passé qui contiennent un Point (page pouvant être en anglais) à gauche (en pixels) du paramètre LeftInPixels.
Private Sub DeleteStrokesByLeft(ByVal mInkOverlay As InkOverlay, ByVal LeftInPixels As Integer)
' Create a Point object based upon the Left parameter
Dim ptLeft As Point = New Point(LeftInPixels, 0)
' Convert the point from pixel space to ink space dimensions
' InkOverlay.AttachedControl must be set
Using g As Graphics = mInkOverlay.AttachedControl.CreateGraphics()
mInkOverlay.Renderer.PixelToInkSpace(g, ptLeft)
End Using
' Create a Strokes object to hold strokes to be deleted
Dim strokesToDelete As Strokes = mInkOverlay.Ink.CreateStrokes()
' Access to the 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 currentStrokes As Strokes = mInkOverlay.Ink.Strokes
For Each S As Stroke In currentStrokes
For Each strokePoint As Point In S.GetPoints()
If (strokePoint.X < ptLeft.X) Then
' Note: A particluar Stroke object might have several
' points to the left of ptLeft.X - Therefore, the
' following statement will be executed multiple times.
' Even so, the Add method will not add the same stroke twice.
strokesToDelete.Add(S)
End If
Next
Next
End Using
If strokesToDelete.Count > 0 Then
mInkOverlay.Ink.DeleteStrokes(strokesToDelete)
mInkOverlay.AttachedControl.Invalidate()
End If
strokesToDelete.Dispose()
End Sub
private void DeleteStrokesByLeft(InkOverlay mInkOverlay, int LeftInPixels)
{
// Create a Point object based upon the Left parameter
Point ptLeft = new Point(LeftInPixels, 0);
// Convert the point from pixel space to ink space dimensions
// InkOverlay.AttachedControl must be set
using (Graphics g = mInkOverlay.AttachedControl.CreateGraphics())
{
mInkOverlay.Renderer.PixelToInkSpace(g, ref ptLeft);
}
// Create a Strokes object to hold strokes to be deleted
Strokes strokesToDelete = mInkOverlay.Ink.CreateStrokes();
// Access to the 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 currentStrokes = mInkOverlay.Ink.Strokes)
{
foreach (Stroke S in currentStrokes)
{
foreach (Point strokePoint in S.GetPoints())
{
if (strokePoint.X < ptLeft.X)
{
// Note: A particluar Stroke object might have several
// points to the left of ptLeft.X - Therefore, the
// following statement will be executed multiple times.
// Even so, the Add method will not add the same stroke twice.
strokesToDelete.Add(S);
}
}
}
}
if (strokesToDelete.Count > 0)
{
mInkOverlay.Ink.DeleteStrokes(strokesToDelete);
mInkOverlay.AttachedControl.Invalidate();
}
strokesToDelete.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