ObjectNode, classe
Mise à jour : November 2007
Représente un ContextNode pour un nœud retourné à partir d'un module de reconnaissance personnalisée d'objets.
Espace de noms : System.Windows.Ink
Assembly : IAWinFX (dans IAWinFX.dll)
Syntaxe
'Déclaration
Public NotInheritable Class ObjectNode _
Inherits ContextNode
'Utilisation
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
Notes
Pour plus d'informations sur le fonctionnement des modules de reconnaissance d'objets, consultez Object Recognizers.
Un ObjectNode ne peut pas contenir d'éléments enfants.
Les objets ObjectNode sont contenus uniquement par un objet CustomRecognizerNode.
Exemples
L'exemple suivant parcourt en boucle les nœuds enfants d'un objet CustomRecognizerNode, musicRecognizer.. Il recherche ensuite chaque ObjectNode et récupère les propriétés pertinentes. L'application traite chaque ObjectNode comme une note de musique. Le module de reconnaissance personnalisée ajoute cinq propriétés (letter, octave, measure, withinMeasure et duration) permettant de décrire la note. La méthode GetPropertyData récupère les données avec les membres Guid suivants : noteLetterId, noteOctaveId, noteMeasureId, noteWithinMeasureId et noteDurationId. Une fois toutes les données collectées, la méthode DrawNote trace la 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);
}
}
}
Hiérarchie d'héritage
System.Object
System.Windows.Ink.ContextNode
System.Windows.Ink.ObjectNode
Sécurité des threads
Tous les membres static (Shared en Visual Basic) publics de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.
Plateformes
Windows Vista
Le .NET Framework et le .NET Compact Framework ne prennent pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.
Informations de version
.NET Framework
Pris en charge dans : 3.0
Voir aussi
Référence
System.Windows.Ink, espace de noms
System.Windows.Ink.CustomRecognizerNode
Autres ressources
Object Recognizers