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