次の方法で共有


ObjectNode クラス

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

参照

参照

ObjectNode メンバ

System.Windows.Ink 名前空間

System.Windows.Ink.CustomRecognizerNode

その他の技術情報

Object Recognizers