ObjectNode - класс
Обновлен: Ноябрь 2007
Represents a ContextNode for a node that is returned from an object custom recognizer.
Пространство имен: System.Windows.Ink
Сборка: IAWinFX (в IAWinFX.dll)
Синтаксис
'Декларация
Public NotInheritable Class ObjectNode _
Inherits ContextNode
'Применение
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
Заметки
For more information about how object recognizers work, see Object Recognizers.
An ObjectNode cannot contain any child elements.
ObjectNode objects are only contained by a CustomRecognizerNode object.
Примеры
The following example loops through the child nodes of a CustomRecognizerNode object, musicRecognizer. It then finds each ObjectNode and retrieves the relevant properties. The application treats each ObjectNode as a musical note. The custom recognizer adds five properties (letter, octave, measure, withinMeasure, and duration) to describe the note. The GetPropertyData method retrieves the data with the following Guid members: noteLetterId, noteOctaveId, noteMeasureId, noteWithinMeasureId, and noteDurationId. After all the data is collected, the DrawNote method draws the 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 = CStr(noteObject.GetPropertyData(Me.noteLetterId))
Else
letter = ""
End If
Dim octave As Integer
If noteObject.ContainsPropertyData(Me.noteOctaveId) Then
octave = Fix(noteObject.GetPropertyData(Me.noteOctaveId))
Else
octave = - 1
End If
Dim measure As Integer
If noteObject.ContainsPropertyData(Me.noteMeasureId) Then
measure = Fix(noteObject.GetPropertyData(Me.noteMeasureId))
Else
measure = - 1
End If
Dim withinMeasure As Integer
If noteObject.ContainsPropertyData(Me.noteWithinMeasureId) Then
withinMeasure = Fix(noteObject.GetPropertyData(Me.noteWithinMeasureId))
Else
withinMeasure = - 1
End If
Dim duration As Integer
If noteObject.ContainsPropertyData(Me.noteOctaveId) Then
duration = Fix(noteObject.GetPropertyData(Me.noteDurationId))
Else
duration = - 1
End If
' Draw note if all data is valid
If letter.Length > 0 AndAlso octave >= 0 AndAlso _
measure >= 0 AndAlso withinMeasure >= 0 AndAlso 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);
}
}
}
Иерархия наследования
System.Object
System.Windows.Ink.ContextNode
System.Windows.Ink.ObjectNode
Потокобезопасность
Любые открытые члены этого типа, объявленные как static (Shared в Visual Basic), являются потокобезопасными. Потокобезопасность членов экземпляров не гарантируется.
Платформы
Windows Vista
Среды .NET Framework и .NET Compact Framework поддерживают не все версии каждой платформы. Поддерживаемые версии перечислены в разделе Требования к системе для .NET Framework.
Сведения о версии
.NET Framework
Поддерживается в версии: 3.0
См. также
Ссылки
System.Windows.Ink - пространство имен
System.Windows.Ink.CustomRecognizerNode
Другие ресурсы
Object Recognizers