RecognizerContext.BackgroundRecognizeWithAlternates Method ()
Causes the Recognizer object to recognize the associated Strokes collection and raise a RecognitionWithAlternates event, with associated application data, when recognition is complete.
Namespace: Microsoft.Ink
Assembly: Microsoft.Ink (in microsoft.ink.dll)
Syntax
'Declaration
Public Sub BackgroundRecognizeWithAlternates
'Usage
Dim instance As RecognizerContext
instance.BackgroundRecognizeWithAlternates
public void BackgroundRecognizeWithAlternates ()
public:
void BackgroundRecognizeWithAlternates ()
public void BackgroundRecognizeWithAlternates ()
public function BackgroundRecognizeWithAlternates ()
Not applicable.
Remarks
This method specifies that ink recognition is performed asynchronously.
To perform recognition that includes only the top alternate, call the BackgroundRecognize method.
The RecognitionWithAlternates event is not raised if the recognizer does not recognize any alternates.
Example
This C# example calls the BackgroundRecognizeWithAlternates method on a RecognizerContext, theRecognizerContext
, as each stroke is collected. It then displays a string representation of the RecognitionResult object, as it is generated, in a list box, theListBox
. The results are made up of all of the RecognitionAlternate objects in descending order of confidence.
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 text box.
// 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.ToString());
}
}
// 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;
}
}
This Microsoft® Visual Basic® .NET example calls the BackgroundRecognizeWithAlternates method on a RecognizerContext, theRecognizerContext
, as each stroke is collected. It then displays a string representation of the RecognitionResult object, as it is generated, in a list box, theListBox
. The results are made up of all of the RecognitionAlternate objects in descending order of confidence.
Imports Microsoft.Ink
Public Class Form1
Inherits System.Windows.Forms.Form
'... Code for initializing Form1 and theListBox 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 list box
theListBox.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
theListBox.Items.Add(theRecognitionAlternate.ToString)
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()
theInkCollector = Nothing
theRecognizerContext.Dispose()
theRecognizerContext = Nothing
End Sub
End Class
Platforms
Windows 98, Windows Server 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
The Microsoft .NET Framework 3.0 is supported on Windows Vista, Microsoft Windows XP SP2, and Windows Server 2003 SP1.
Version Information
.NET Framework
Supported in: 3.0
See Also
Reference
RecognizerContext Class
RecognizerContext Members
Microsoft.Ink Namespace
BackgroundRecognizeWithAlternates
Microsoft.Ink.RecognizerContext.BackgroundRecognize
ExtendedProperty.Data
RecognitionAlternate