RecognizerContext.Recognition Event
Occurs when the RecognizerContext object has generated results from the BackgroundRecognize method.
Assembly: Microsoft.Ink (in Microsoft.Ink.dll)
The event handler receives an argument of type RecognizerContextRecognitionEventArgs that contains data about this event.
When you create a RecognizerContextRecognitionEventHandler delegate, you identify the method that handles the event. To associate the event with your event handler, add an instance of the delegate to the event. The event handler is called whenever the event occurs, unless you remove the delegate.
The behavior of the application programming interface (API) is unpredictable if you try to gain access to the original RecognizerContext object from the recognition event handler. Do not attempt to do this. Instead, if you need to do this, create a flag and set it in the Recognition event handler. Then you can poll that flag to determine when to change the RecognizerContext properties outside of the event handler.
In this example, each stroke made in an InkOverlay object is automatically recognized and the recognition result displayed.
During application startup, the RecognizerContext object is instantiated, and event handlers are assigned.
' create a new RecognizerContext object ' the object's Strokes property is initialized to null mRecognizerContext = New RecognizerContext() ' assign the Strokes property by creating a fresh Strokes collection mRecognizerContext.Strokes = mInkOverlay.Ink.CreateStrokes() ' subscribe to the Strokes event. It is during this event ' that we can add strokes to the RecognizerContext AddHandler mInkOverlay.Stroke, New InkCollectorStrokeEventHandler(AddressOf mInkOverlay_Stroke2) ' subscribe to the the Recognition event. ' This event is fired when background recognition is complete, ' and recognition results (without alternates) are available AddHandler mRecognizerContext.Recognition, _ New RecognizerContextRecognitionEventHandler(AddressOf mRecognizerContext_Recognition)
When the Stroke event fires (in response to the user completing a stroke), the newly created stroke is added to the Strokes collection of the RecognizerContext object, and the BackgroundRecognize method is called.
Private Sub mInkOverlay_Stroke2(ByVal sender As Object, ByVal e As InkCollectorStrokeEventArgs) ' in case background recognition is still occurring, stop it mRecognizerContext.StopBackgroundRecognition() ' add the stroke, and start recognition mRecognizerContext.Strokes.Add(e.Stroke) mRecognizerContext.BackgroundRecognize() End Sub
When background recognition is complete, the Recognition event fires. During handling of this event, the results of the recognition are placed in a list box.
' event fires when recognition results (without alternates) are ready Private Sub mRecognizerContext_Recognition(ByVal sender As Object, _ ByVal e As RecognizerContextRecognitionEventArgs) ' when updating a control, must use Invoke() since controls are ' not thread safe and recognition occurs on a different thread If Me.InvokeRequired Then ' recursively call this method via Invoke() Me.Invoke( _ New RecognizerContextRecognitionEventHandler(AddressOf mRecognizerContext_Recognition), _ New Object() {sender, e} _ ) Return End If If RecognitionStatus.NoError = e.RecognitionStatus Then listBoxRecognitionResults.Items.Add(e.Text) End If End Sub
Windows 7, Windows Vista, Windows Server 2008 R2, Windows Server 2008
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.