ObjectNode (Clase)
Actualización: noviembre 2007
Representa un objeto ContextNode para un nodo que se devuelve de un reconocedor personalizado de objetos.
Espacio de nombres: Microsoft.Ink
Ensamblado: Microsoft.Ink.Analysis (en Microsoft.Ink.Analysis.dll)
Sintaxis
'Declaración
Public NotInheritable Class ObjectNode _
Inherits ContextNode
'Uso
Dim instance As ObjectNode
public sealed class ObjectNode : ContextNode
public ref class ObjectNode sealed : public ContextNode
public final class ObjectNode extends ContextNode
public final class ObjectNode extends ContextNode
Comentarios
Para obtener más información sobre cómo funcionan los reconocedores de objetos, vea Object Recognizers.
Un nodo ObjectNode no puede contener ningún elemento secundario.
Los objetos ObjectNode únicamente pueden estar incluidos en un objeto CustomRecognizerNode.
Ejemplos
En el ejemplo siguiente se recorren en bucle los nodos secundarios de un objeto CustomRecognizerNode, musicRecognizer.. Después se buscan cada uno de los nodos ObjectNode y se recuperan las propiedades pertinentes. La aplicación trata los nodos ObjectNode como una nota. El reconocedor personalizado ha agregado cinco propiedades (letter, octave, measure, withinMeasure y duration) para describir la nota. El método ContextNode.GetPropertyData recupera los datos con los siguientes miembros de Guid: noteLetterId, noteOctaveId, noteMeasureId, noteWithinMeasureId y noteDurationId. Una vez recopilados todos los datos, el método DrawNote dibuja la nota.
Dim subNode As ContextNode
For Each subNode In musicRecognizer.SubNodes
If TypeOf subNode Is ObjectNode Then
' Assume all object nodes represent notes
Dim noteObject As ObjectNode = CType(subNode, ObjectNode)
Dim letter As String
If noteObject.ContainsPropertyData(Me.noteLetterId) Then
letter = CType(noteObject.GetPropertyData(Me.noteLetterId), String)
Else
letter = ""
End If
Dim octave As Integer
If noteObject.ContainsPropertyData(Me.noteOctaveId) Then
octave = CType(noteObject.GetPropertyData(Me.noteOctaveId), Integer)
Else
octave = -1
End If
Dim measure As Integer
If noteObject.ContainsPropertyData(Me.noteMeasureId) Then
measure = CType(noteObject.GetPropertyData(Me.noteMeasureId), Integer)
Else
measure = -1
End If
Dim withinMeasure As Integer
If noteObject.ContainsPropertyData(Me.noteWithinMeasureId) Then
withinMeasure = CType(noteObject.GetPropertyData(Me.noteWithinMeasureId), Integer)
Else
withinMeasure = -1
End If
Dim duration As Integer
If noteObject.ContainsPropertyData(Me.noteDurationId) Then
duration = CType(noteObject.GetPropertyData(Me.noteDurationId), Integer)
Else
duration = -1
End If
' Draw note if all data is valid
If (letter.Length > 0 And octave >= 0 And measure >= 0 And _
withinMeasure >= 0 And duration >= 0) Then
DrawNote(letter, octave, measure, withinMeasure, duration)
End If
End If
Next subNode
foreach (ContextNode subNode in musicRecognizer.SubNodes)
{
if (subNode is ObjectNode)
{
// Assume all object nodes represent notes
ObjectNode noteObject = (ObjectNode)subNode;
string letter;
if (noteObject.ContainsPropertyData(this.noteLetterId))
letter = (string)noteObject.GetPropertyData(this.noteLetterId);
else
letter = "";
int octave;
if (noteObject.ContainsPropertyData(this.noteOctaveId))
octave = (int)noteObject.GetPropertyData(this.noteOctaveId);
else
octave = -1;
int measure;
if (noteObject.ContainsPropertyData(this.noteMeasureId))
measure = (int)noteObject.GetPropertyData(this.noteMeasureId);
else
measure = -1;
int withinMeasure;
if (noteObject.ContainsPropertyData(this.noteWithinMeasureId))
withinMeasure = (int)noteObject.GetPropertyData(this.noteWithinMeasureId);
else
withinMeasure = -1;
int duration;
if (noteObject.ContainsPropertyData(this.noteOctaveId))
duration = (int)noteObject.GetPropertyData(this.noteDurationId);
else
duration = -1;
// Draw note if all data is valid
if (letter.Length > 0 && octave >= 0 && measure >= 0 &&
withinMeasure >= 0 && duration >= 0)
{
DrawNote(letter, octave, measure, withinMeasure, duration);
}
}
}
Jerarquía de herencia
System.Object
Microsoft.Ink.ContextNode
Microsoft.Ink.ObjectNode
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
Microsoft.Ink (Espacio de nombres)
Microsoft.Ink.CustomRecognizerNode