RecognizerContextRecognitionWithAlternatesEventHandler Delegate
RecognizerContextRecognitionWithAlternatesEventHandler Delegate |
Represents the method that handles the RecognitionWithAlternates event of a RecognizerContext object.
Definition
Visual Basic .NET Public Delegate Sub RecognizerContextRecognitionWithAlternatesEventHandler( _
ByVal sender As Object, _
ByVal e As RecognizerContextRecognitionWithAlternatesEventArgs _
)C# public delegate void RecognizerContextRecognitionWithAlternatesEventHandler(
object sender,
RecognizerContextRecognitionWithAlternatesEventArgs e
);Managed C++ public: __gc __delegate void RecognizerContextRecognitionWithAlternatesEventHandler(
Object *sender,
RecognizerContextRecognitionWithAlternatesEventArgs *e
);
Parameters
sender System.Object. [in] Specifies the source RecognizerContext object of this event. e Microsoft.Ink.RecognizerContextRecognitionWithAlternatesEventArgs. [in] Specifies the RecognizerContextRecognitionWithAlternatesEventArgs object that contains the event data.
Delegate Information
Namespace Microsoft.Ink Assembly Microsoft.Ink (microsoft.ink.dll) Strong Name Microsoft.Ink, Version=1.7.4009.0, Culture=neutral, PublicKeyToken=a2870d9cc4d021c8
Remarks
The RecognitionWithAlternates event occurs when the RecognizerContext has generated results after calling the BackgroundRecognizeWithAlternates method.
When you create a RecognizerContextRecognitionWithAlternatesEventHandler delegate, you identify the method that will handle 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.
Warning: If you try to gain access to the original RecognizerContext object from the RecognizerContextRecognitionEventHandler delegate, the behavior is unpredictable. Do not attempt to do this.
Examples
[C#]
This C# example demonstrates using a background recognition with alternates method call to the recognizer as each stroke is collected and displaying the results along with all of the alternates in descending order of confidence in a list box as they are generated.
using System; using System.Drawing; using System.Windows.Forms; using Microsoft.Ink; class RecognitionWithAlternatesEventForm : System.Windows.Forms.Form { private ListBox listAlternates; InkCollector theInkCollector; Strokes theStrokes; RecognizerContext theRecognizerContext; RecognitionResult theRecognitionResult; public RecognitionWithAlternatesEventForm() { // Initialize the form and the textbox. // Call SuspendLayout while we adjust things. this.listAlternates = new System.Windows.Forms.ListBox(); this.SuspendLayout(); this.listAlternates.Dock = System.Windows.Forms.DockStyle.Bottom; this.listAlternates.Location = new System.Drawing.Point(0, 200); this.listAlternates.Size = new System.Drawing.Size(350, 120); this.ClientSize = new System.Drawing.Size(350, 320); this.Controls.AddRange(new System.Windows.Forms.Control[] {this.listAlternates}); this.Text = "RecognitionWithAlternates Event Demo"; this.ResumeLayout(false); // Create new ink collector and recognizer context theInkCollector = new InkCollector(Handle); theRecognizerContext = new RecognizerContext(); // Initialize the recognizer's strokes // and assign them to the recognizer context. theStrokes = theInkCollector.Ink.Strokes; theRecognizerContext.Strokes = theStrokes; // Install event handlers. theInkCollector.Stroke += new InkCollectorStrokeEventHandler(Stroke_Event); theRecognizerContext.RecognitionWithAlternates += new RecognizerContextRecognitionWithAlternatesEventHandler( RecognitionWithAlternates_Event); // Enable the ink collector theInkCollector.Enabled = true; } public static void Main() { Application.Run(new RecognitionWithAlternatesEventForm()); } // Stroke event handler private void Stroke_Event(object sender, InkCollectorStrokeEventArgs e) { // When a new stroke is collected, // add it to the recognizer's strokes collection. theStrokes.Add(e.Stroke); // Tell the context to recognize its strokes. theRecognizerContext.BackgroundRecognizeWithAlternates(); } // Recognition Event Handler private void RecognitionWithAlternates_Event( object sender, RecognizerContextRecognitionWithAlternatesEventArgs e) { theRecognitionResult = e.Result; RecognitionAlternates theRecognitionAlternates = theRecognitionResult.GetAlternatesFromSelection(0, -1); // Update the Text box with the top string of the result listAlternates.Items.Clear(); foreach (RecognitionAlternate theRecognitionAlternate in theRecognitionAlternates) { listAlternates.Items.Add(theRecognitionAlternate.String); } // Event handler for the form's closed event private void RecognitionWithAlternatesEventForm_Closed(object sender, System.EventArgs e) { theInkCollector.Dispose(); theInkCollector = null; theRecognizerContext.Dispose(); theRecognizerContext = null; } } }
[Visual Basic .NET]
This Microsoft® Visual Basic® .NET example demonstrates using a background recognition with alternates method call to the recognizer as each stroke is collected and displaying the results along with all of the alternates in descending order of confidence in a list box as they are generated.
Imports Microsoft.Ink Public Class Form1 Inherits System.Windows.Forms.Form '... Code for initializing Form1 and ListBox1 goes here. Dim theInkCollector As InkCollector Dim theStrokes As Strokes Dim theRecognizerContext As RecognizerContext Dim theRecognitionResult As RecognitionResult Private Sub Stroke_Event(ByVal sender As Object, _ ByVal e As InkCollectorStrokeEventArgs) 'When a new stroke is collected, add it to 'the RecognizerContext's strokes collection theStrokes.Add(e.Stroke) 'Tell the RecognizerContext to recognize theRecognizerContext.BackgroundRecognizeWithAlternates() End Sub Private Sub RecognizeWithAlternates_Event( _ ByVal sender As Object, _ ByVal e As RecognizerContextRecognitionWithAlternatesEventArgs) 'Clear the listbox ListBox1.Items.Clear() 'Get the set of alternates from the entire 'result selection. theRecognitionResult = e.Result Dim theRecognitionAlternates As RecognitionAlternates theRecognitionAlternates = theRecognitionResult.GetAlternatesFromSelection(0, -1) 'Update the list box with the alternates Dim theRecognitionAlternate As RecognitionAlternate For Each theRecognitionAlternate In theRecognitionAlternates ListBox1.Items.Add(theRecognitionAlternate.String) Next End Sub Private Sub Form1_Load(ByVal sender As Object, _ ByVal e As System.EventArgs) Handles MyBase.Load theInkCollector = New InkCollector(Handle) 'Create new RecognizerContext theRecognizerContext = New RecognizerContext() 'Initialize the recognizer's strokes 'and assign them to the RecognizerContext theStrokes = theInkCollector.Ink.Strokes theRecognizerContext.Strokes = theStrokes 'Add the handler for the Stroke event AddHandler theInkCollector.Stroke, AddressOf Stroke_Event 'Handle Recognition event AddHandler theRecognizerContext.RecognitionWithAlternates, _ AddressOf RecognizeWithAlternates_Event 'Enable the ink collector theInkCollector.Enabled = True End Sub ' Event handler for the form's closed event Private Sub Form1_Closed(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Closed theInkCollector.Dispose() Set theInkCollector = Nothing theRecognizerContext.Dispose() Set theRecognizerContext = Nothing End Sub End Class
See Also