Share via


InkAnalyzer.AddStroke Method (Stroke)

Adds a Stroke to the InkAnalyzer and assigns the active input thread's locale identifier to the stroke.

Namespace:  System.Windows.Ink
Assembly:  IAWinFX (in IAWinFX.dll)

Syntax

'Declaration
Public Function AddStroke ( _
    strokeToAdd As Stroke _
) As ContextNode
'Usage
Dim instance As InkAnalyzer 
Dim strokeToAdd As Stroke 
Dim returnValue As ContextNode 

returnValue = instance.AddStroke(strokeToAdd)
public ContextNode AddStroke(
    Stroke strokeToAdd
)
public:
ContextNode^ AddStroke(
    Stroke^ strokeToAdd
)
public function AddStroke(
    strokeToAdd : Stroke
) : ContextNode

Parameters

Return Value

Type: System.Windows.Ink.ContextNode
The ContextNode to which strokeToAdd was added.

Remarks

The InkAnalyzer adds the Stroke to an UnclassifiedInkNode in the RootNode property's SubNodes collection. The Stroke, strokeToAdd, is assigned the same locale identifier that is used on the active input thread: Stroke is then added to the first UnclassifiedInkNode containing strokes that are characterized by the same locale identifier. If no such UnclassifiedInkNode exists, a new UnclassifiedInkNode is created and strokeToAdd is added to the new UnclassifiedInkNode.

This method expands the DirtyRegion to the union of the region's current value and the bounding box of the added stroke.

If the stroke is already attached to the InkAnalyzer, the InkAnalyzer throws an exception.

Examples

The following example creates a new InkAnalyzer and attaches the StrokesChanged event handler to the Strokes property on the InkCanvas, named theInkCanvas.

theInkAnalyzer = New InkAnalyzer()

AddHandler theInkCanvas.Strokes.StrokesChanged, AddressOf Strokes_StrokesChanged
theInkAnalyzer = new InkAnalyzer();

theInkCanvas.Strokes.StrokesChanged += 
    new StrokeCollectionChangedEventHandler(Strokes_StrokesChanged);

The following example defines the Strokes_StrokesChanged event handler, which adds strokes to theInkAnalyzer if they were already added to theInkCanvas. It also removes strokes from theInkAnalyzer, if they were already removed from theInkCanvas.

' This event occurs whenever a stroke is added, removed, or partially erased 
' from the InkCanvas. 
Sub Strokes_StrokesChanged(ByVal sender As Object, ByVal e As StrokeCollectionChangedEventArgs) 
    If e.Added.Count > 0 Then
        theInkAnalyzer.AddStrokes(e.Added)
    End If 

    If e.Removed.Count > 0 Then
        theInkAnalyzer.RemoveStrokes(e.Removed)
    End If 

End Sub 'Strokes_StrokesChanged
// This event occurs whenever a stroke is added, removed, or partially erased 
// from the InkCanvas. 
void Strokes_StrokesChanged(object sender, StrokeCollectionChangedEventArgs e)
{
    if (e.Added.Count > 0)
    {
        theInkAnalyzer.AddStrokes(e.Added);
    }

    if (e.Removed.Count > 0)
    {
        theInkAnalyzer.RemoveStrokes(e.Removed);
    }
}

Platforms

Windows 7, Windows Vista, Windows XP SP2, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Version Information

.NET Framework

Supported in: 3.0

See Also

Reference

InkAnalyzer Class

InkAnalyzer Members

AddStroke Overload

System.Windows.Ink Namespace

InkAnalyzer.AddStrokes

InkAnalyzerRemoveStroke

InkAnalyzerRemoveStrokes