InkAnalyzer-Klasse
Stellt den Zugriff auf die Layoutanalyse, die Schrift- und Zeichnungsklassifizierung und die Handschrifterkennung bereit.
Namespace: System.Windows.Ink
Assembly: IAWinFX (in IAWinFX.dll)
Syntax
'Declaration
Public Class InkAnalyzer _
Implements IDisposable
'Usage
Dim instance As InkAnalyzer
public class InkAnalyzer : IDisposable
public ref class InkAnalyzer : IDisposable
public class InkAnalyzer implements IDisposable
public class InkAnalyzer implements IDisposable
Hinweise
Verwenden Sie zum Hinzufügen oder Entfernen von Strichen zu InkAnalyzer für die Analyse die AddStroke, AddStrokes, RemoveStroke()-Methode oder die RemoveStrokes()-Methode. Diese Methoden aktualisieren die DirtyRegion-Eigenschaft, die den Bereich definiert, der die Striche für den nächsten Analysevorgang enthält.
Verwenden Sie zur Analyse von Freihandeingaben die Analyze-Methode oder die BackgroundAnalyze()-Methode. Während der Analyse führt InkAnalyzer die Layoutanalyse, die Strichklassifizierung und die Handschrifterkennung aus.
Während der Analyse löst InkAnalyzer eine Anzahl von Ereignissen aus. Legen Sie die SynchronizingObject-Eigenschaft fest, um den Thread anzugeben, an dem InkAnalyzer Ereignisse auslösen soll, die während der Hintergrundanalyse generiert werden. Viele InkAnalyzer-Ereignisse unterstützen die Datenproxyfeatures von InkAnalyzer. Weitere Informationen finden Sie unter Data Proxy with Ink Analysis.
Rufen Sie die Abort-Methode auf, um den Analyseprozess aus einem Ereignishandler heraus zu beenden.
Verwenden Sie SetStrokeLanguageId() oder SetStrokesLanguageId(), um die Sprache zu ändern, die das Freihandanalysemodul verwendet, um Handschrift zu erkennen. Verwenden Sie SetStrokeType() oder SetStrokesType(), um zu ändern, wie das Freihandanalysemodul bestimmte Striche klassifiziert.
Der InkAnalyzer lädt alle installierten Freihanderkennungsmodule. Die InkRecognizersByPriority()-Eigenschaft ruft eine InkRecognizerCollection ab, die alle verfügbaren InkRecognizer enthält. Verwenden Sie SetHighestPriorityInkRecognizer(InkRecognizer), um das Freihanderkennungsmodul festzulegen, das Striche in einer bestimmten Sprache verarbeiten soll.
Informationen über die Bereitstellung von Kontext für Freihandmodulvorgänge finden Sie unter CreateAnalysisHint, DeleteAnalysisHint() und GetAnalysisHints.
Das Freihandanalysemodul stellt Analyseergebnisse als Zeichenfolge oder eine Struktur aus ContextNode-Objekten dar. Verwenden Sie GetRecognizedString(), um auf die erkannte Zeichenfolge zuzugreifen. Verwenden Sie die RootNode-Eigenschaft, um auf den Stamm der Struktur zuzugreifen. Das Freihandanalysemodul verfügt über die folgenden Methoden zum Suchen von bestimmten Kontextknoten oder bestimmtem Text.
GetNodesFromTextRange(Int32%, Int32%)
GetTextRangeFromNodes(ContextNodeBaseCollection, Int32%, Int32%)
Verwenden Sie GetAlternates und ModifyTopAlternate, um mit alternativen Analyseergebnissen zu arbeiten.
Verwenden Sie SaveResults, um Analyseergebnisse zu speichern. Verwenden Sie zum Laden gespeicherter Ergebnisse Load.
Weitere Informationen zum Verwenden von InkAnalyzer für die Analyse von Freihandeingaben finden Sie unter Ink Analysis Overview.
Sie müssen die Dispose-Methode explizit für jedes InkAnalyzer-Objekt aufrufen, an das ein Ereignishandler angefügt wurde, bevor das Objekt den Gültigkeitsbereich verlässt.
Beispiele
Im folgenden Beispiel wird ein neuer InkAnalyzer erstellt, und an die Strokes-Eigenschaft für den InkCanvas mit dem Namen theInkCanvas wird der StrokesChanged-Ereignishandler angefügt.
theInkAnalyzer = New InkAnalyzer()
AddHandler theInkCanvas.Strokes.StrokesChanged, AddressOf Strokes_StrokesChanged
theInkAnalyzer = new InkAnalyzer();
theInkCanvas.Strokes.StrokesChanged +=
new StrokeCollectionChangedEventHandler(Strokes_StrokesChanged);
Im folgenden Beispiel wird der Strokes_StrokesChanged-Ereignishandler definiert, der Striche zu theInkAnalyzer hinzufügt, wenn sie bereits zu theInkCanvas. hinzugefügt wurden. Außerdem entfernt der Ereignishandler Striche aus theInkAnalyzer, wenn sie bereits aus theInkCanvas entfernt wurden.
' 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);
}
}
Vererbungshierarchie
System.Object
System.Windows.Ink.InkAnalyzer
Threadsicherheit
Alle öffentlichen static (Shared in Visual Basic)-Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.
Plattformen
Windows Vista
.NET Framework und .NET Compact Framework unterstützen nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.
Versionsinformationen
.NET Framework
Unterstützt in: 3.0
Siehe auch
Referenz
System.Windows.Ink.AnalysisAlternate
System.Windows.Ink.AnalysisHintNode
System.Windows.Ink.AnalysisStatus