Classe InkAnalyzer
Aggiornamento: novembre 2007
Fornisce l'accesso all'analisi del layout, alla classificazione del disegno e della scrittura e al riconoscimento della grafia.
Spazio dei nomi: System.Windows.Ink
Assembly: IAWinFX (in IAWinFX.dll)
Sintassi
'Dichiarazione
Public Class InkAnalyzer _
Implements IDisposable
'Utilizzo
Dim instance As InkAnalyzer
public class InkAnalyzer : IDisposable
public ref class InkAnalyzer : IDisposable
public class InkAnalyzer implements IDisposable
public class InkAnalyzer implements IDisposable
Note
Per aggiungere o rimuovere i tratti dell'oggetto InkAnalyzer per l'analisi, utilizzare il metodo AddStroke, AddStrokes, RemoveStroke() o RemoveStrokes(). Questi metodi aggiornano la proprietà DirtyRegion che definisce l'area contenente i tratti che vengono analizzati nell'operazione di analisi successiva.
Per analizzare l'input penna, utilizzare il metodo Analyze o BackgroundAnalyze(). Durante l'analisi, l'oggetto InkAnalyzer esegue l'analisi del layout, la classificazione dei tratti e il riconoscimento della grafia.
Durante l'analisi, InkAnalyzer genera una serie di eventi. Impostare la proprietà SynchronizingObject per specificare il thread in cui InkAnalyzer genererà gli eventi che vengono generati durante l'analisi in background. Molti eventi InkAnalyzer supportano le funzionalità del proxy di dati dell'oggetto InkAnalyzer. Per ulteriori informazioni, vedere Data Proxy with Ink Analysis.
Per arrestare il processo di analisi da un gestore eventi, chiamare il metodo Abort.
Per modificare la lingua utilizzata dall'analizzatore dell'input penna per riconoscere la grafia, utilizzare SetStrokeLanguageId() o SetStrokesLanguageId(). Per modificare la modalità utilizzata dall'analizzatore dell'input penna per classificare specifici tratti, utilizzare SetStrokeType() o SetStrokesType().
InkAnalyzer carica tutti i sistemi di riconoscimento dell'input penna installati. La proprietà InkRecognizersByPriority() ottiene un insieme InkRecognizerCollection contenente tutti gli oggetti InkRecognizer disponibili. Se più di un sistema di riconoscimento supporta una lingua specifica, utilizzare SetHighestPriorityInkRecognizer(InkRecognizer) per definire il riconoscimento dell'input penna responsabile della gestione dei tratti per una determinata lingua.
Per informazioni su come specificare il contesto per l'operazione di analisi dell'input penna, vedere CreateAnalysisHint, DeleteAnalysisHint() e GetAnalysisHints.
L'analizzatore dell'input penna rappresenta i risultati dell'analisi sotto forma di stringa o di struttura ad albero di oggetti ContextNode. Per accedere alla stringa riconosciuta, utilizzare GetRecognizedString(). Per accedere alla radice della struttura ad albero, utilizzare la proprietà RootNode. Per l'individuazione di testo o di nodi di contesto specifici, sono disponibili i seguenti metodi dell'analizzatore dell'input penna.
GetNodesFromTextRange(Int32%, Int32%)
GetTextRangeFromNodes(ContextNodeBaseCollection, Int32%, Int32%)
Per utilizzare risultati di analisi alternativi, usare GetAlternates e ModifyTopAlternate.
Per salvare i risultati dell'analisi, utilizzare SaveResults. Per caricare i risultati salvati, utilizzare Load.
Per ulteriori informazioni sull'utilizzo di InkAnalyzer per analizzare l'input penna, vedere Ink Analysis Overview.
È necessario chiamare in modo esplicito il metodo Dispose su qualsiasi oggetto InkAnalyzer a cui è stato associato un gestore eventi, prima che l'oggetto esca dall'ambito.
Esempi
Nell'esempio seguente viene creato un nuovo oggetto InkAnalyzer e il gestore per l'evento StrokesChanged viene associato alla proprietà Strokes nell'oggetto InkCanvas denominato theInkCanvas.
theInkAnalyzer = New InkAnalyzer()
AddHandler theInkCanvas.Strokes.StrokesChanged, AddressOf Strokes_StrokesChanged
theInkAnalyzer = new InkAnalyzer();
theInkCanvas.Strokes.StrokesChanged +=
new StrokeCollectionChangedEventHandler(Strokes_StrokesChanged);
Nell'esempio seguente viene definito il gestore eventi Strokes_StrokesChanged che aggiunge i tratti a theInkAnalyzer, se erano già stati aggiunti a theInkCanvas. Quindi, i tratti vengono rimossi da theInkAnalyzer, se erano già stati rimossi da 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);
}
}
Gerarchia di ereditarietà
System.Object
System.Windows.Ink.InkAnalyzer
Codice thread safe
Qualsiasi membro static (Shared in Visual Basic) pubblico di questo tipo è thread-safe. I membri di istanza non sono garantiti come thread-safe.
Piattaforme
Windows Vista
.NET Framework e .NET Compact Framework non supportano tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.
Informazioni sulla versione
.NET Framework
Supportato in: 3.0
Vedere anche
Riferimenti
Spazio dei nomi System.Windows.Ink
System.Windows.Ink.AnalysisAlternate
System.Windows.Ink.AnalysisHintNode
System.Windows.Ink.AnalysisStatus