RecognizerContextRecognitionWithAlternatesEventArgs.CustomData, propriété
Mise à jour : November 2007
Obtient l'objet qui contient les données personnalisées pour le résultat de reconnaissance.
Espace de noms : Microsoft.Ink
Assembly : Microsoft.Ink (dans Microsoft.Ink.dll)
Syntaxe
'Déclaration
Public ReadOnly Property CustomData As Object
'Utilisation
Dim instance As RecognizerContextRecognitionWithAlternatesEventArgs
Dim value As Object
value = instance.CustomData
public Object CustomData { get; }
public:
property Object^ CustomData {
Object^ get ();
}
/** @property */
public Object get_CustomData()
public function get CustomData () : Object
Valeur de propriété
Type : System.Object
Données personnalisées pour le résultat de reconnaissance.
Notes
Vous pouvez fournir des données personnalisées lorsque vous appelez la méthode BackgroundRecognizeWithAlternates de l'objet RecognizerContext. Lorsque l'objet RecognizerContext déclenche l'événement RecognitionWithAlternates, les données personnalisées sont disponibles dans la propriété CustomData de l'objet RecognizerContextRecognitionWithAlternatesEventArgs.
Exemples
Dans cet exemple, chaque trait dessiné dans un objet InkOverlay est reconnu automatiquement et le résultat de la reconnaissance est affiché.
Lorsque l'événement Stroke se déclenche (suite à la création d'un trait), le nouveau trait est ajouté à la collection Strokes de l'objet RecognizerContext, et la méthode BackgroundRecognizeWithAlternates est appelée (l'heure actuelle est passée au paramètre customData).
Private Sub mInkOverlay_Stroke3(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.BackgroundRecognizeWithAlternates(DateTime.Now)
End Sub
private void mInkOverlay_Stroke3(object sender, InkCollectorStrokeEventArgs e)
{
// in case background recognition is still occurring, stop it
mRecognizerContext.StopBackgroundRecognition();
// add the stroke, and start recognition, passing current time
mRecognizerContext.Strokes.Add(e.Stroke);
mRecognizerContext.BackgroundRecognizeWithAlternates(DateTime.Now);
}
Lorsque la reconnaissance d'arrière-plan est terminée, l'événement RecognitionWithAlternates se déclenche. Pendant la gestion de cet événement, les résultats de la reconnaissance (y compris les propositions de substitution) sont placés dans une zone de liste. De plus, l'heure de début de la reconnaissance est extraite de la propriété CustomData de l'objet RecognizerContextRecognitionWithAlternatesEventArgs et utilisée pour calculer le temps total écoulé requis pour la reconnaissance.
' event fires when recognition results (without alternates) are ready
Private Sub RecognizerContext_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 RecognizerContext_Recognition), _
New Object() {sender, e} _
)
Return
End If
If RecognitionStatus.NoError = e.RecognitionStatus Then
listBoxRecognitionResults.Items.Add(e.Text)
' get the custom data and calculate elapsed time
Dim startTime As DateTime = DirectCast(e.CustomData, DateTime)
Dim endTime As DateTime = DateTime.Now
Dim span As TimeSpan = New TimeSpan(endTime.Ticks - startTime.Ticks)
' display the number of seconds for this recognition to finish
listBoxRecognitionResults.Items.Add(span.TotalSeconds.ToString())
End If
End Sub
// event fires when recognition results (without alternates) are ready
private void RecognizerContext_Recognition(object sender, RecognizerContextRecognitionEventArgs e)
{
// when updating a control, must use Invoke() since controls are
// not thread safe and recognition occurs on a different thread
if (this.InvokeRequired)
{
// recursively call this method via Invoke()
this.Invoke(
new RecognizerContextRecognitionEventHandler(RecognizerContext_Recognition),
new object[] { sender, e }
);
return;
}
if (RecognitionStatus.NoError == e.RecognitionStatus)
{
listBoxRecognitionResults.Items.Add(e.Text);
// get the custom data and calculate elapsed time
DateTime startTime = (DateTime)e.CustomData;
DateTime endTime = DateTime.Now;
TimeSpan span = new TimeSpan(endTime.Ticks - startTime.Ticks);
// display the number of seconds for this recognition to finish
listBoxRecognitionResults.Items.Add(span.TotalSeconds.ToString());
}
}
Plateformes
Windows Vista
Le .NET Framework et le .NET Compact Framework ne prennent pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.
Informations de version
.NET Framework
Pris en charge dans : 3.0
Voir aussi
Référence
RecognizerContextRecognitionWithAlternatesEventArgs, classe
Membres RecognizerContextRecognitionWithAlternatesEventArgs