다음을 통해 공유


ContextNodeType 클래스

업데이트: 2007년 11월

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

네임스페이스:  Microsoft.Ink
어셈블리:  Microsoft.Ink.Analysis(Microsoft.Ink.Analysis.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 메서드에 이 클래스의 필드가 자주 사용됩니다.

예제

이 예제에서는 TextBox인 selectedResultsTextBox의 Text 속성을 설정하여 ContextNode인 selectedNode에 대해 적절한 문자열을 표시합니다. 또한 Type 속성을 사용하여 ContextNode의 형식에 따라 표시할 텍스트의 종류를 선택합니다.

Select Case selectedNode.Type
    Case Microsoft.Ink.ContextNodeType.WritingRegion
        Dim writingRegion As WritingRegionNode = _
            CType(selectedNode, WritingRegionNode)
        selectedResultsTextBox.Text = writingRegion.GetRecognizedString()
    Case Microsoft.Ink.ContextNodeType.Paragraph
        Dim paragraph As ParagraphNode = _
            CType(selectedNode, ParagraphNode)
        selectedResultsTextBox.Text = paragraph.GetRecognizedString()
    Case Microsoft.Ink.ContextNodeType.Line
        Dim line As LineNode = _
            CType(selectedNode, LineNode)
        selectedResultsTextBox.Text = line.GetRecognizedString()
    Case Microsoft.Ink.ContextNodeType.InkWord
        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
        ' Show the time stamp
        If inkWord.ContainsPropertyData(Me.timeStampGuid) Then
            Dim timeStamp As DateTime = _
                CType(inkWord.GetPropertyData(Me.timeStampGuid), DateTime)
            timeStampLabel.Text = timeStamp.ToShortTimeString()
        End If

        ' Snippet to demonstrate GetPropertyDataIds
        Dim propertyDataIds() As Guid = inkWord.GetPropertyDataIds()

        ' Snippets to demonstrate loading and saving
        Dim data As Byte() = inkWord.SavePropertiesData()
        If (Not inkWord.LoadPropertiesData(data)) Then
            MessageBox.Show("Cannot load property data")
        End If
    Case Microsoft.Ink.ContextNodeType.InkDrawing
        Dim drawingNode As InkDrawingNode = CType(selectedNode, InkDrawingNode)
        selectedResultsTextBox.Text = drawingNode.GetShapeName()
    Case Microsoft.Ink.ContextNodeType.InkBullet
        Dim bulletNode As InkBulletNode = CType(selectedNode, InkBulletNode)
        selectedResultsTextBox.Text = bulletNode.GetRecognizedString()
    Case Microsoft.Ink.ContextNodeType.Object
        Dim selectedObject As ObjectNode = selectedNode
        selectedResultsTextBox.Text = selectedObject.GetRecognizedString()
    Case Microsoft.Ink.ContextNodeType.CustomRecognizer
        Dim customRecognizer As CustomRecognizerNode = selectedNode
        selectedResultsTextBox.Text = customRecognizer.GetRecognizedString()
    Case Else
        selectedResultsTextBox.Text = String.Empty
End Select
                if (selectedNode.Type == Microsoft.Ink.ContextNodeType.WritingRegion)
                {
                    WritingRegionNode writingRegion = (WritingRegionNode)selectedNode;
                    selectedResultsTextBox.Text = writingRegion.GetRecognizedString();
                }
                else if (selectedNode.Type == Microsoft.Ink.ContextNodeType.Paragraph)
                {
                    ParagraphNode paragraph = (ParagraphNode)selectedNode;
                    selectedResultsTextBox.Text = paragraph.GetRecognizedString();
                }
                else if (selectedNode.Type == Microsoft.Ink.ContextNodeType.Line)
                {
                    LineNode line = (LineNode)selectedNode;
                    selectedResultsTextBox.Text = line.GetRecognizedString();
                }
                else if (selectedNode.Type == Microsoft.Ink.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 = 0;
                        int length = 0;
                        parentLine.GetTextRangeFromNodes(subNodes, out start, out length);
                        if (start >= 0 && length > 0)
                        {
                            selectedResultsTextBox.Select(start, length);
                        }
                    }
                }
                else if (selectedNode.Type == Microsoft.Ink.ContextNodeType.InkDrawing)
                {
                    InkDrawingNode drawingNode = (InkDrawingNode)selectedNode;
                    selectedResultsTextBox.Text = drawingNode.GetShapeName();
                }
                else if (selectedNode.Type == Microsoft.Ink.ContextNodeType.InkBullet)
                {
                    InkBulletNode bulletNode = (InkBulletNode)selectedNode;
                    selectedResultsTextBox.Text = bulletNode.GetRecognizedString();
                }
                else if (selectedNode.Type == Microsoft.Ink.ContextNodeType.CustomRecognizer)
                {
                    CustomRecognizerNode customRecognizer = (CustomRecognizerNode)selectedNode;
                    selectedResultsTextBox.Text = customRecognizer.GetRecognizedString();
                }
                else if (selectedNode.Type == Microsoft.Ink.ContextNodeType.Object)
                {
                    ObjectNode selectedObject = (ObjectNode)selectedNode;
                    selectedResultsTextBox.Text = selectedObject.GetRecognizedString();
                }
                else
                {
                    selectedResultsTextBox.Text = String.Empty;
                }

상속 계층 구조

System.Object
  Microsoft.Ink.ContextNodeType

스레드로부터의 안전성

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

플랫폼

Windows Vista

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

버전 정보

.NET Framework

3.0에서 지원

참고 항목

참조

ContextNodeType 멤버

Microsoft.Ink 네임스페이스

ContextNode.Type

InkAnalyzer.FindNodesOfType