InkAnalyzer, classe
Mise à jour : November 2007
Fournit l'accès à l'analyse de disposition, à la classification d'écriture et de dessin et à la reconnaissance de l'écriture manuscrite.
Espace de noms : System.Windows.Ink
Assembly : IAWinFX (dans IAWinFX.dll)
Syntaxe
'Déclaration
Public Class InkAnalyzer _
Implements IDisposable
'Utilisation
Dim instance As InkAnalyzer
public class InkAnalyzer : IDisposable
public ref class InkAnalyzer : IDisposable
public class InkAnalyzer implements IDisposable
public class InkAnalyzer implements IDisposable
Notes
Pour ajouter ou supprimer des traits du InkAnalyzer pour analyse, utilisez les méthodes AddStroke, AddStrokes, RemoveStroke() ou RemoveStrokes(). Ces méthodes mettent à jour la propriété DirtyRegion, qui définit la région qui contient les traits analysés dans l'analyse suivante.
Pour analyser l'entrée manuscrite, utilisez la méthode Analyze ou BackgroundAnalyze(). Pendant l'analyse, le InkAnalyzer exécute une analyse de disposition, une classification des traits et une reconnaissance de l'écriture manuscrite.
Pendant l'analyse, le InkAnalyzer déclenche plusieurs événements. Définissez la propriété SynchronizingObject pour spécifier le thread où le InkAnalyzer doit déclencher les événements générés pendant l'analyse d'arrière-plan. De nombreux événements InkAnalyzer prennent en charge les fonctionnalités du proxy de données du InkAnalyzer. Pour plus d'informations, consultez Data Proxy with Ink Analysis.
Pour arrêter le processus d'analyse à partir d'un gestionnaire d'événements, appelez la méthode Abort.
Pour modifier la langue que l'analyseur d'entrée manuscrite utilise pour reconnaître l'écriture manuscrite, utilisez SetStrokeLanguageId() ou SetStrokesLanguageId(). Pour modifier la manière dont l'analyseur d'entrée manuscrite classifie des traits spécifiques, utilisez SetStrokeType() ou SetStrokesType().
Le InkAnalyzer charge l'ensemble des modules de reconnaissance de l'écriture manuscrite installés. La propriété InkRecognizersByPriority() obtient un InkRecognizerCollection contenant chaque InkRecognizer disponible. Si plusieurs modules de reconnaissance de l'écriture manuscrite prennent en charge une langue donnée, utilisez la méthode SetHighestPriorityInkRecognizer(InkRecognizer) pour désigner le module de reconnaissance de l'écriture manuscrite chargé de la gestion des traits pour une langue donnée.
Pour plus d'informations sur la mise à disposition de contexte pour l'opération d'analyse d'entrée manuscrite, consultez CreateAnalysisHint, DeleteAnalysisHint() et GetAnalysisHints.
L'analyseur d'entrée manuscrite représente les résultats de l'analyse sous forme de chaîne ou d'arborescence d'objets ContextNode. Pour accéder à la chaîne reconnue, utilisez la méthode GetRecognizedString(). Pour accéder à la racine de l'arborescence, utilisez la propriété RootNode. L'analyseur d'entrée manuscrite utilise les méthodes suivantes pour rechercher du texte ou des nœuds de contexte spécifiques.
GetNodesFromTextRange(Int32%, Int32%)
GetTextRangeFromNodes(ContextNodeBaseCollection, Int32%, Int32%)
Pour travailler avec d'autres résultats d'analyse, utilisez GetAlternates et ModifyTopAlternate.
Pour enregistrer des résultats d'analyse, utilisez SaveResults. Pour charger des résultats enregistrés, utilisez Load.
Pour plus d'informations sur l'utilisation du InkAnalyzer pour analyser l'entrée manuscrite, consultez Ink Analysis Overview.
Vous devez appeler explicitement la méthode Dispose sur tout objet InkAnalyzer auquel a été attaché un gestionnaire d'événements avant qu'il ne soit hors de portée.
Exemples
L'exemple suivant crée un InkAnalyzer et attache le gestionnaire d'événements StrokesChanged à la propriété Strokes sur un InkCanvas, nommé theInkCanvas.
theInkAnalyzer = New InkAnalyzer()
AddHandler theInkCanvas.Strokes.StrokesChanged, AddressOf Strokes_StrokesChanged
theInkAnalyzer = new InkAnalyzer();
theInkCanvas.Strokes.StrokesChanged +=
new StrokeCollectionChangedEventHandler(Strokes_StrokesChanged);
L'exemple suivant définit le gestionnaire d'événements Strokes_StrokesChanged, qui ajoute des traits à theInkAnalyzer s'ils ont déjà été ajoutés à theInkCanvas. Il supprime également des traits de theInkAnalyzer s'ils ont déjà été supprimés de 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);
}
}
Hiérarchie d'héritage
System.Object
System.Windows.Ink.InkAnalyzer
Sécurité des threads
Tous les membres static (Shared en Visual Basic) publics de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.
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
System.Windows.Ink, espace de noms
System.Windows.Ink.AnalysisAlternate
System.Windows.Ink.AnalysisHintNode
System.Windows.Ink.AnalysisStatus