Partager via


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.

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

Membres InkAnalyzer

System.Windows.Ink, espace de noms

System.Windows.Ink.AnalysisAlternate

System.Windows.Ink.AnalysisHintNode

System.Windows.Ink.AnalysisStatus

System.Windows.Ink.ContextLink

System.Windows.Ink.ContextNode