Metodo Ink.DeleteStrokes (Strokes)
Aggiornamento: novembre 2007
Elimina l'insieme Strokes specificato dall'oggetto Ink.
Spazio dei nomi: Microsoft.Ink
Assembly: Microsoft.Ink (in Microsoft.Ink.dll)
Sintassi
'Dichiarazione
Public Sub DeleteStrokes ( _
strokes As Strokes _
)
'Utilizzo
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
)
Parametri
- strokes
Tipo: Microsoft.Ink.Strokes
Insieme Strokes da eliminare.
Note
L'oggetto Ink rinumera gli indici degli oggetti Stroke restanti nell'oggetto Ink se gli oggetti Stroke eliminati non si trovano alla fine dell'insieme Strokes dell'oggetto Ink.
Il metodo DeleteStrokes può comportare un errore se chiamato mentre l'utente sta disponendo attivamente l'input penna.
Nota
Un insieme Strokes che punta a una proprietà Ink.Strokes diventa non valido quando gli oggetti Stroke contenuti nell'insieme originale sono eliminati dall'oggetto Ink. Ad esempio, se esiste un insieme Strokes denominato, theStrokesToo, basato sulla proprietà Strokes di un oggetto InktheStrokes, e viene chiamano il metodo DeleteStrokes su theStrokes, l'oggetto theStrokesToo diventa non valido.
Per eliminare un unico oggetto Stroke alla volta, chiamare il metodo DeleteStroke.
Esempi
In questo esempio è contenuta una funzione di esempio che elimina tutti gli oggetti Stroke dell'oggetto InkOverlay passato contenente un puntoa sinistra (nello spazio del pixel) del parametro 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();
}
Piattaforme
Windows Vista
.NET Framework e .NET Compact Framework non supportano tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.
Informazioni sulla versione
.NET Framework
Supportato in: 3.0