다음을 통해 공유


ContextNodeType 클래스

업데이트: 2007년 11월

ContextNode 개체 형식을 지정하는 값을 정의합니다.

네임스페이스:  System.Windows.Ink
어셈블리:  IAWinFX(IAWinFX.dll)

구문

‘선언
Public NotInheritable Class ContextNodeType
‘사용 방법
Dim instance As ContextNodeType
public sealed class ContextNodeType
public ref class ContextNodeType sealed
public final class ContextNodeType
public final class ContextNodeType

설명

ContextNode.Type 속성 및 InkAnalyzer.FindNodesOfType 메서드는 System.Windows.Ink.ContextNodeType의 필드를 자주 참조합니다.

예제

이 예제에서는 selectedResultsTextBox라는 TextBoxText 속성을 설정하여 selectedNode라는 선택된 ContextNode와 관련된 문자열 값을 표시합니다. 또한 Type 속성을 사용하여 ContextNode의 형식 값에 따라 텍스트 표시를 지정합니다.

If selectedNode.Type = ContextNodeType.WritingRegion Then
    Dim writingRegion As WritingRegionNode = CType(selectedNode, WritingRegionNode)
    selectedResultsTextBox.Text = writingRegion.GetRecognizedString()
ElseIf selectedNode.Type = ContextNodeType.Paragraph Then
    Dim paragraph As ParagraphNode = CType(selectedNode, ParagraphNode)
    selectedResultsTextBox.Text = paragraph.GetRecognizedString()
ElseIf selectedNode.Type = ContextNodeType.Line Then
    Dim line As LineNode = CType(selectedNode, LineNode)
    selectedResultsTextBox.Text = line.GetRecognizedString()
ElseIf selectedNode.Type = ContextNodeType.InkWord Then
    Dim inkWord As InkWordNode = CType(selectedNode, InkWordNode)
    Dim parentNode As ContextNode = inkWord.ParentNode
    If TypeOf parentNode Is LineNode Then
        Dim parentLine As LineNode = CType(parentNode, LineNode)
        ' Put parent line's recognized string into the text box
        selectedResultsTextBox.Text = parentLine.GetRecognizedString()

        ' Select the text that corresponds to the ink word
        Dim subNodes As New ContextNodeCollection(theInkAnalyzer)
        subNodes.Add(inkWord)
        Dim start As Integer
        Dim length As Integer
        parentLine.GetTextRangeFromNodes(subNodes, start, length)
        If start >= 0 AndAlso length > 0 Then
            selectedResultsTextBox.Select(start, length)
        End If
    End If
ElseIf selectedNode.Type = ContextNodeType.InkDrawing Then
    Dim drawingNode As InkDrawingNode = CType(selectedNode, InkDrawingNode)
    selectedResultsTextBox.Text = drawingNode.GetShapeName()
ElseIf selectedNode.Type = ContextNodeType.InkBullet Then
    Dim bulletNode As InkBulletNode = CType(selectedNode, InkBulletNode)
    selectedResultsTextBox.Text = bulletNode.GetRecognizedString()
ElseIf selectedNode.Type = ContextNodeType.CustomRecognizer Then
    Dim customRecognizer As CustomRecognizerNode = CType(selectedNode, CustomRecognizerNode)
    selectedResultsTextBox.Text = customRecognizer.GetRecognizedString()
ElseIf selectedNode.Type = ContextNodeType.Object Then
    Dim selectedObject As ObjectNode = CType(selectedNode, ObjectNode)
    selectedResultsTextBox.Text = selectedObject.GetRecognizedString()
Else
    selectedResultsTextBox.Text = ""
End If
if (selectedNode.Type == ContextNodeType.WritingRegion)
{
    WritingRegionNode writingRegion = (WritingRegionNode)selectedNode;
    selectedResultsTextBox.Text = writingRegion.GetRecognizedString();
}
else if (selectedNode.Type == ContextNodeType.Paragraph)
{
    ParagraphNode paragraph = (ParagraphNode)selectedNode;
    selectedResultsTextBox.Text = paragraph.GetRecognizedString();
}
else if (selectedNode.Type == ContextNodeType.Line)
{
    LineNode line = (LineNode)selectedNode;
    selectedResultsTextBox.Text = line.GetRecognizedString();
}
else if (selectedNode.Type == ContextNodeType.InkWord)
{
    InkWordNode inkWord = (InkWordNode)selectedNode;
    ContextNode parentNode = inkWord.ParentNode;
    if (parentNode is LineNode)
    {
        LineNode parentLine = (LineNode)parentNode;
        // Put parent line's recognized string into the text box
        selectedResultsTextBox.Text = parentLine.GetRecognizedString();

        // Select the text that corresponds to the ink word
        ContextNodeCollection subNodes = new ContextNodeCollection(theInkAnalyzer);
        subNodes.Add(inkWord);
        int start;
        int length;
        parentLine.GetTextRangeFromNodes(subNodes, out start, out length);
        if (start >= 0 && length > 0)
        {
            selectedResultsTextBox.Select(start, length);
        }
    }
}
else if (selectedNode.Type == ContextNodeType.InkDrawing)
{
    InkDrawingNode drawingNode = (InkDrawingNode)selectedNode;
    selectedResultsTextBox.Text = drawingNode.GetShapeName();
}
else if (selectedNode.Type == ContextNodeType.InkBullet)
{
    InkBulletNode bulletNode = (InkBulletNode)selectedNode;
    selectedResultsTextBox.Text = bulletNode.GetRecognizedString();
}
else if (selectedNode.Type == ContextNodeType.CustomRecognizer)
{
    CustomRecognizerNode customRecognizer = (CustomRecognizerNode)selectedNode;
    selectedResultsTextBox.Text = customRecognizer.GetRecognizedString();
}
else if (selectedNode.Type == ContextNodeType.Object)
{
    ObjectNode selectedObject = (ObjectNode)selectedNode;
    selectedResultsTextBox.Text = selectedObject.GetRecognizedString();
}
else
{
    selectedResultsTextBox.Text = "";
}

상속 계층 구조

System.Object
  System.Windows.Ink.ContextNodeType

스레드로부터의 안전성

이 형식의 모든 공용 static(Visual Basic의 경우 Shared) 멤버는 스레드로부터 안전합니다. 인터페이스 멤버는 스레드로부터 안전하지 않습니다.

플랫폼

Windows Vista

.NET Framework 및 .NET Compact Framework에서 모든 플랫폼의 전체 버전을 지원하지는 않습니다. 지원되는 버전의 목록을 보려면 .NET Framework 시스템 요구 사항을 참조하십시오.

버전 정보

.NET Framework

3.0에서 지원

참고 항목

참조

ContextNodeType 멤버

System.Windows.Ink 네임스페이스

ContextNode.Type

InkAnalyzer.FindNodesOfType