ObjectNode-Klasse
Stellt einen ContextNode für einen Knoten dar, der von einem benutzerdefinierten Objekterkennungsmodul zurückgegeben wird.
Namespace: Microsoft.Ink
Assembly: Microsoft.Ink.Analysis (in Microsoft.Ink.Analysis.dll)
Syntax
'Declaration
Public NotInheritable Class ObjectNode _
Inherits ContextNode
'Usage
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
Hinweise
Weitere Informationen über die Funktionsweise von Objekterkennungsmodulen finden Sie unter Object Recognizers.
Ein ObjectNode kann keine untergeordneten Elemente enthalten.
Nur ein CustomRecognizerNode-Objekt kann ObjectNode-Objekte enthalten.
Beispiele
Im folgenden Beispiel werden die untergeordneten Knoten des CustomRecognizerNode-Objekts musicRecognizer. durchlaufen. Dann wird jeder ObjectNode ermittelt, und die relevanten Eigenschaften werden abgerufen. Die Anwendung behandelt jeden ObjectNode als eine Note. Das benutzerdefinierte Erkennungsmodul hat fünf Eigenschaften (letter, octave, measure, withinMeasure und duration) hinzugefügt, die die Note beschreiben. Die ContextNode.GetPropertyData-Methode ruft die Daten mit den folgenden Guid-Membern ab: noteLetterId, noteOctaveId, noteMeasureId, noteWithinMeasureId und noteDurationId. Nachdem alle Daten erfasst wurden, zeichnet die DrawNote-Methode die Note.
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);
}
}
}
Vererbungshierarchie
System.Object
Microsoft.Ink.ContextNode
Microsoft.Ink.ObjectNode
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
Microsoft.Ink.CustomRecognizerNode