다음을 통해 공유


ContextNode.Confirm 메서드

업데이트: 2007년 11월

InkAnalyzer에서 노드에 대해 변경할 수 있는 항목을 제한하는 확인 형식을 설정합니다.

네임스페이스:  Microsoft.Ink
어셈블리:  Microsoft.Ink.Analysis(Microsoft.Ink.Analysis.dll)

구문

‘선언
Public Sub Confirm ( _
    type As ConfirmationType _
)
‘사용 방법
Dim instance As ContextNode
Dim type As ConfirmationType

instance.Confirm(type)
public void Confirm(
    ConfirmationType type
)
public:
void Confirm(
    ConfirmationType type
)
public void Confirm(
    ConfirmationType type
)
public function Confirm(
    type : ConfirmationType
)

매개 변수

설명

Confirm을 사용하면 최종 사용자가 InkAnalyzer에서 스트로크를 올바르게 분석했는지 확인할 수 있습니다. Confirm을 호출하면 InkAnalyzer는 이후 분석에서 해당 스트로크에 대한 ContextNode 개체를 변경하지 않습니다.

예를 들어 최종 사용자가 "to"라는 단어를 필기한 후 응용 프로그램에서 Analyze를 호출하면 InkAnalyzer는 값이 "to"인 InkWord 노드를 만듭니다. 그런 다음 최종 사용자가 "to" 뒤에 "me"를 한 단어로 추가하고 응용 프로그램에서 다시 Analyze를 호출하면 InkAnalyzer는 값이 "tome"인 InkWord 노드 하나를 만듭니다. 그러나 응용 프로그램에서 Analyze를 처음 호출한 후 "to"에 대한 InkWord 노드에 대해 NodeTypeAndProperties 값을 사용하여 Confirm을 호출하면 다른 동작이 발생합니다. 이러한 경우 최종 사용자가 "me"를 추가하고 응용 프로그램에서 다시 Analyze를 호출해도 "to" 노드가 변경되지 않습니다. InkAnalyzer는 "to me"에 대한 두 InkWord 노드를 인식합니다.

InkWordInkDrawing 형식의 ContextNode 개체만 확인할 수 있습니다. 리프 노드가 아닌 노드에 대해 Confirm을 호출하면 InvalidOperationException이 throw됩니다.

InkAnalyzer.RemoveStroke를 호출하는 경우 제거할 스트로크가 확인된 ContextNode 개체와 관련되어 있으면 ContextNode 개체가 자동으로 확인되지 않은 상태로 설정됩니다.

ContextNode 개체가 이미 확인된 경우에는 SetStrokes, InkAnalyzer.SetStrokesTypeInkAnalyzer.SetStrokeType에서 InvalidOperationException을 throw합니다. 소스 또는 대상 노드가 확인된 경우에는 ReparentStrokes에서 예외를 throw합니다.

예제

다음 예제에서는 InkCollector인 theInkCollector를 통해 잉크를 수집하는 Panel인 theNotesPanel의 Control.MouseUp 이벤트에 대한 이벤트 처리기입니다. 응용 프로그램에는 MenuItem인 confirmMenuItem에서 설정하는 Boolean인 confirmMode가 있습니다. "확인" 모드에서 사용자가 단어를 클릭하면 단어가 확인되거나, 해당 노드가 이미 확인된 경우 확인이 해제됩니다. 이 예제에서는 마우스 단추 놓기 이벤트를 잉크 좌표로 변환하고 HitTestFindNodesOfType을 사용하여 해당 노드를 찾습니다. 노드를 찾은 후 Confirm을 호출하여 확인 여부를 전환합니다. 마지막으로 응용 프로그램을 "확인" 모드에서 해제합니다.

Private Sub theNotesPanel_MouseUp(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles theNotesPanel.MouseUp
    If Me.confirmMode = True Then
        ' Translate coordinates into ink dimensions
        Dim hitPoint As New Point(e.X, e.Y)
        Dim panelGraphics As Graphics = Me.theNotesPanel.CreateGraphics()
        Me.theInkCollector.Renderer.PixelToInkSpace(panelGraphics, hitPoint)
        panelGraphics.Dispose()

        ' Find the strokes that the user selected
        Dim selectedStrokes As Strokes = Me.theInkCollector.Ink.HitTest(hitPoint, 10)

        ' Find the ink word nodes that correspond to those strokes
        Dim selectedNodes As ContextNodeCollection = _
            Me.theInkAnalyzer.FindNodesOfType(Microsoft.Ink.ContextNodeType.InkWord, _
            selectedStrokes)

        ' Toggle the confirmation type on these nodes
        Dim selectedNode As ContextNode
        For Each selectedNode In selectedNodes
            If selectedNode.IsConfirmed(ConfirmationType.NodeTypeAndProperties) = True Then
                selectedNode.Confirm(Microsoft.Ink.ConfirmationType.None)
            Else
                selectedNode.Confirm(Microsoft.Ink.ConfirmationType.NodeTypeAndProperties)
            End If
        Next selectedNode

        ' No longer in "confirm" mode
        Me.confirmMode = False
        Me.ConfirmMenuItem.Checked = False
        Me.theInkCollector.Enabled = True
    End If

End Sub
private void theNotesPanel_MouseUp(object sender, MouseEventArgs e)
{
    if (this.confirmMode)
    {
        // Translate coordinates into ink dimensions
        Point hitPoint = new Point(e.X, e.Y);
        Graphics panelGraphics = this.theNotesPanel.CreateGraphics();
        this.theInkCollector.Renderer.PixelToInkSpace(panelGraphics, ref hitPoint);
        panelGraphics.Dispose();

        // Find the strokes that the user selected
        Strokes selectedStrokes = this.theInkCollector.Ink.HitTest(hitPoint, 10);

        // Find the ink word nodes that correspond to those strokes
        ContextNodeCollection selectedNodes =
            this.theInkAnalyzer.FindNodesOfType(Microsoft.Ink.ContextNodeType.InkWord,
            selectedStrokes);

        // Toggle the confirmation type on these nodes
        foreach (ContextNode selectedNode in selectedNodes)
        {
            if (selectedNode.IsConfirmed(ConfirmationType.NodeTypeAndProperties))
            {
                selectedNode.Confirm(Microsoft.Ink.ConfirmationType.None);
            }
            else
            {
                selectedNode.Confirm(Microsoft.Ink.ConfirmationType.NodeTypeAndProperties);
            }
        }

        // No longer in "confirm" mode
        this.confirmMode = false;
        this.confirmMenuItem.Checked = false;
        this.theInkCollector.Enabled = true;
    }

}

플랫폼

Windows Vista

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

버전 정보

.NET Framework

3.0에서 지원

참고 항목

참조

ContextNode 클래스

ContextNode 멤버

Microsoft.Ink 네임스페이스