オブジェクトのカスタム認識エンジンから返されるノードの ContextNode を表します。
名前空間 : Microsoft.Ink
アセンブリ : Microsoft.Ink.Analysis (Microsoft.Ink.Analysis.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
解説
オブジェクト認識エンジンの機能の詳細については、「Object Recognizers」を参照してください。
ObjectNode には、子要素を含めることができません。
ObjectNode オブジェクトは、CustomRecognizerNode オブジェクトにのみ含まれます。
例
次の例では、CustomRecognizerNode オブジェクト musicRecognizer の子ノードをループし、各 ObjectNode を検索して関連するプロパティを取得します。アプリケーションは、各 ObjectNode を音符として処理します。カスタム認識エンジンは音符を示すために 5 つのプロパティ (letter、octave、measure、withinMeasure、および duration) を追加しています。ContextNode.GetPropertyData メソッドは、Guid メンバ (noteLetterId、noteOctaveId、noteMeasureId、noteWithinMeasureId、および noteDurationId) を持つデータを取得します。すべてのデータが収集されたら、DrawNote メソッドは音符を描画します。
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);
}
}
}
継承階層
System.Object
Microsoft.Ink.ContextNode
Microsoft.Ink.ObjectNode
スレッド セーフ
この型のすべてのパブリック static (Visual Basic では Shared) メンバは、スレッド セーフです。インスタンス メンバの場合は、スレッド セーフであるとは限りません。
プラットフォーム
Windows Vista
.NET Framework および .NET Compact Framework では、各プラットフォームのすべてのバージョンはサポートしていません。サポートされているバージョンについては、「.NET Framework システム要件」を参照してください。
バージョン情報
.NET Framework
サポート対象 : 3.0
参照
参照
Microsoft.Ink.CustomRecognizerNode