Compartir a través de


InkAnalyzer (Clase)

Actualización: noviembre 2007

Proporciona acceso al análisis del diseño, la clasificación de la escritura y el dibujo y el reconocimiento de la escritura a mano.

Espacio de nombres:  System.Windows.Ink
Ensamblado:  IAWinFX (en IAWinFX.dll)

Sintaxis

'Declaración
Public Class InkAnalyzer _
    Implements IDisposable
'Uso
Dim instance As InkAnalyzer
public class InkAnalyzer : IDisposable
public ref class InkAnalyzer : IDisposable
public class InkAnalyzer implements IDisposable
public class InkAnalyzer implements IDisposable

Comentarios

Para agregar o quitar trazos en el objeto InkAnalyzer para el análisis, utilice los métodos AddStroke, AddStrokes, RemoveStrokes() o RemoveStroke(). Estos métodos actualizan la propiedad DirtyRegion, que define la región que contiene los trazos que se analizan en la operación de análisis siguiente.

Para analizar la entrada manuscrita, utilice el método BackgroundAnalyze() o Analyze. Durante el análisis, el objeto InkAnalyzer realiza el análisis del diseño, la clasificación de los trazos y el reconocimiento de la escritura a mano.

Durante el análisis, el objeto InkAnalyzer provoca una serie de eventos. Establezca la propiedad SynchronizingObject para especificar el subproceso donde InkAnalyzer provocará los eventos que se generan durante el análisis en segundo plano. Muchos eventos InkAnalyzer admiten las características de proxy de datos del objeto InkAnalyzer. Para obtener más información, vea Data Proxy with Ink Analysis.

Para detener el proceso de análisis desde un controlador de eventos, llame al método Abort.

Para modificar el idioma que utiliza el analizador de entrada manuscrita para reconocer la escritura a mano, utilice SetStrokeLanguageId() o SetStrokesLanguageId(). Para modificar cómo el analizador de entrada manuscrita clasifica trazos específicos, utilice el método SetStrokeType() o SetStrokesType().

El método InkAnalyzer carga todos los reconocedores de entrada manuscrita instalados. La propiedad InkRecognizersByPriority() obtiene una colección InkRecognizerCollection que contiene cada objeto InkRecognizer disponible. Si varios reconocedores de entrada manuscrita admiten el mismo idioma, utilice SetHighestPriorityInkRecognizer(InkRecognizer) para designar el que será responsable de controlar los trazos para un idioma determinado.

Para obtener información sobre cómo proporcionar contexto para la operación de análisis de entrada manuscrita, vea CreateAnalysisHint, DeleteAnalysisHint() y GetAnalysisHints.

El analizador de entrada manuscrita representa los resultados del análisis como una cadena o un árbol de objetos ContextNode. Para tener acceso a la cadena reconocida, utilice el método GetRecognizedString(). Para tener acceso a la raíz del árbol, utilice la propiedad RootNode. El analizador de entrada manuscrita dispone de los métodos siguientes para buscar nodos de contexto concretos o texto.

Para trabajar con resultados de análisis alternativos, utilice GetAlternates y ModifyTopAlternate.

Para guardar los resultados del análisis, utilice SaveResults. Para cargar los resultados guardados, utilice Load.

Para obtener más información sobre cómo utilizar el objeto InkAnalyzer para analizar la entrada manuscrita, vea Ink Analysis Overview.

Debe llamar explícitamente al método Dispose en cualquier objeto InkAnalyzer al que se asocie un controlador de eventos antes de que el objeto quede fuera de ámbito.

Ejemplos

En el ejemplo siguiente, se crea un nuevo objeto InkAnalyzer y se asocia el controlador de eventos StrokesChanged a la propiedad Strokes del control InkCanvas denominado theInkCanvas.

theInkAnalyzer = New InkAnalyzer()

AddHandler theInkCanvas.Strokes.StrokesChanged, AddressOf Strokes_StrokesChanged
theInkAnalyzer = new InkAnalyzer();

theInkCanvas.Strokes.StrokesChanged += 
    new StrokeCollectionChangedEventHandler(Strokes_StrokesChanged);

En el ejemplo siguiente, se define el controlador de eventos Strokes_StrokesChanged, que agrega trazos a theInkAnalyzer si ya se agregaron a theInkCanvas. También quita los trazos de theInkAnalyzer si ya se quitaron 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);
    }
}

Jerarquía de herencia

System.Object
  System.Windows.Ink.InkAnalyzer

Seguridad para subprocesos

Todos los miembros static (Shared en Visual Basic) públicos de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

Plataformas

Windows Vista

.NET Framework y .NET Compact Framework no admiten todas las versiones de cada plataforma. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

Información de versión

.NET Framework

Compatible con: 3.0

Vea también

Referencia

InkAnalyzer (Miembros)

System.Windows.Ink (Espacio de nombres)

System.Windows.Ink.AnalysisAlternate

System.Windows.Ink.AnalysisHintNode

System.Windows.Ink.AnalysisStatus

System.Windows.Ink.ContextLink

System.Windows.Ink.ContextNode