次の方法で共有


ObjectNode クラス

オブジェクトのカスタム認識エンジンから返されるノードの 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

参照

参照

ObjectNode メンバ

Microsoft.Ink 名前空間

Microsoft.Ink.CustomRecognizerNode

その他の技術情報

Object Recognizers