Compartir a través de


RecognizerContext.WordList (Propiedad)

Actualización: noviembre 2007

Obtiene o establece el objeto WordList que se usa para mejorar los resultados del reconocimiento.

Espacio de nombres:  Microsoft.Ink
Ensamblado:  Microsoft.Ink (en Microsoft.Ink.dll)

Sintaxis

'Declaración
Public Property WordList As WordList
'Uso
Dim instance As RecognizerContext
Dim value As WordList

value = instance.WordList

instance.WordList = value
public WordList WordList { get; set; }
public:
property WordList^ WordList {
    WordList^ get ();
    void set (WordList^ value);
}
/** @property */
public WordList get_WordList()
/** @property */
public  void set_WordList(WordList value)
public function get WordList () : WordList
public function set WordList (value : WordList)

Valor de propiedad

Tipo: Microsoft.Ink.WordList
La lista de palabras que se usa para mejorar los resultados del reconocimiento. El objeto devuelto es una copia de trabajo interna de la lista de palabras subyacente, no una referencia directa.

Comentarios

Antes de poder usar esta propiedad, debe inicializarla creando instancias de un objeto newWordList y asignando el objeto recién creado a la propiedad WordList.

Establecer la propiedad WordList solamente resulta correcto si la propiedad Strokes es nullreferencia null (Nothing en Visual Basic). Debe establecer la propiedad WordList antes de asociar una colección Strokes a la propiedad Strokes de RecognizerContext, o debe establecer la propiedad Strokes en nullreferencia null (Nothing en Visual Basic) y, a continuación, establecer la propiedad WordList.

Nota

Si usa el segundo método, es posible que tenga que volver a asociar la colección Strokes a la propiedad Strokes del objeto RecognizerContext.

Para quitar la lista de palabras actual y usar el diccionario personal, establezca la propiedad WordList en nullreferencia null (Nothing en Visual Basic). Cualquier modificación posterior del objeto WordList no modifica el resultado del reconocimiento.

Realizar pruebas para ver si esta propiedad se ha establecido en nullreferencia null (Nothing en Visual Basic) no es significativo. El valor devuelto por el descriptor de acceso get siempre es non-null. Se muestra cómo hacerlo en el ejemplo siguiente.

Dim RC As RecognizerContext = New RecognizerContext()
RC.WordList = Nothing
If (Not RC.WordList Is Nothing) Then ' always true
    ' but this won't work, throws a null reference exception
    RC.WordList.Add("thunk")
End If
RecognizerContext RC = new RecognizerContext();
RC.WordList = null;
if (RC.WordList != null) // always true
{
    // but this won't work, throws a null reference exception
    RC.WordList.Add("thunk");
}

Como el valor devuelto de esta propiedad es una copia de trabajo interna de la lista de palabras subyacente, y no una referencia directa, cualquier adición de palabras o frases que realice no está disponible para su uso durante el reconocimiento hasta que la propiedad WordList se reasigne. Tenga en cuenta lo siguiente:

Dim RC As RecognizerContext = New RecognizerContext()
RC.WordList = New WordList()
Dim testStr As String = "thunk"
' test if string is supported - false
Dim isTestStrSupported As Boolean = RC.IsStringSupported(testStr)
' get a copy of the WordList
Dim WL As WordList = RC.WordList
' add the string to the copy
WL.Add(testStr)
' test if string is supported - still false
isTestStrSupported = RC.IsStringSupported(testStr)
' assign copy back to the WordList property
RC.WordList = WL
' test if string is supported - now true
isTestStrSupported = RC.IsStringSupported(testStr)
RecognizerContext RC = new RecognizerContext();
RC.WordList = new WordList();
string testStr = "thunk";
// test if string is supported - false
bool isTestStrSupported = RC.IsStringSupported(testStr);
// get a copy of the WordList
WordList WL = RC.WordList;
// add the string to the copy
WL.Add(testStr);
// test if string is supported - still false
isTestStrSupported = RC.IsStringSupported(testStr);
// assign copy back to the WordList property
RC.WordList = WL;
// test if string is supported - now true
isTestStrSupported = RC.IsStringSupported(testStr);

En el ejemplo anterior, la palabra de prueba se agrega a la copia interna de la propiedad WordList y, después, la copia se reasigna a la propiedad WordList.

Como alternativa, puede agregar la palabra de prueba a la propia propiedad WordList. En este caso, está realizando cambios en la copia de trabajo interna y tiene que reasignar la propiedad WordList antes de que la palabra recién agregada esté disponible para usarla durante el reconocimiento.

Dim RC As RecognizerContext = New RecognizerContext()
RC.WordList = New WordList()
Dim testStr As String = "thunk"
' test if string is supported - false
Dim isTestStrSupported As Boolean = RC.IsStringSupported(testStr)
' get a copy of the WordList
Dim WL As WordList = RC.WordList
' add the string to the WordList property itself
RC.WordList.Add(testStr)
' test if string is supported - still false
isTestStrSupported = RC.IsStringSupported(testStr)
' assign copy back to the WordList property
RC.WordList = WL
' test if string is supported - now true
isTestStrSupported = RC.IsStringSupported(testStr)
RecognizerContext RC = new RecognizerContext();
RC.WordList = new WordList();
string testStr = "thunk";
// test if string is supported - false
bool isTestStrSupported = RC.IsStringSupported(testStr);
// get a copy of the WordList
WordList WL = RC.WordList;
// add the string to the WordList property itself
RC.WordList.Add(testStr);
// test if string is supported - still false
isTestStrSupported = RC.IsStringSupported(testStr);
// assign copy back to the WordList property
RC.WordList = WL;
// test if string is supported - now true
isTestStrSupported = RC.IsStringSupported(testStr);

Al reasignar la propiedad WordList con la copia obtenida a través del descriptor de acceso get de la propiedad, el contenido modificado no reemplaza al objeto WordListoriginal. En su lugar, agrega la diferencia al objeto WordList original. Si desea reemplazar el objeto WordList original, use una de estas técnicas:

  1. Cree un nuevo objeto RecognizerContext y asígnele el objeto WordList modificado.

  2. Cree un nuevo objeto WordList y asígnelo al objeto RecognizerContext existente.

Use la propiedad Factoid para limitar la búsqueda a la lista de palabras que está asociada con el contexto. Es posible que también tenga que establecer la propiedad RecognitionFlags para mejorar los resultados.

No se puede establecer la propiedad WordList una vez establecido el control. Esto evita que el control haga referencia a una lista de palabras que posiblemente no existe. Si intenta hacerlo, se producirá la excepción COM del tipo: "Se llamó al método después de llamar al proceso o de establecer el control".

Si se agrega una cadena a una lista de palabras, también se agregan de forma implícita sus versiones en mayúsculas. Por ejemplo, si se agrega "hola", también se agrega implícitamente "Hola" y "HOLA".

Para borrar la lista WordList, establézcala como si se tratase de un objeto WordList vacío.

Ejemplos

En este ejemplo, se crea una instancia de un objeto RecognizerContext y se asigna un nuevo objeto WordList a su propiedad WordList. A continuación, el método IsStringSupported se usa para determinar si se admite una cadena especificada. Si no, la cadena se agrega a WordList.

Dim RC As RecognizerContext = New RecognizerContext()
RC.WordList = New WordList()
Dim testStr As String = "thunk"
If Not RC.IsStringSupported(testStr) Then
    Dim WL As WordList = RC.WordList
    WL.Add(testStr)
    ' testStr is not available for use in recognition
    ' until the WordList property is re-assigned
    RC.WordList = WL
End If
RecognizerContext RC = new RecognizerContext();
RC.WordList = new WordList();
string testStr = "thunk";
if (!RC.IsStringSupported(testStr))
{
    WordList WL = RC.WordList;
    WL.Add(testStr);
    // testStr is not available for use in recognition
    // until the WordList property is re-assigned
    RC.WordList = WL;
}

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

RecognizerContext (Clase)

RecognizerContext (Miembros)

Microsoft.Ink (Espacio de nombres)

RecognizerContext

WordList

RecognizerContext.Strokes

RecognizerContext.Factoid

RecognizerContext.RecognitionFlags