다음을 통해 공유


InkEditStrokeEventHandler 대리자

업데이트: 2007년 11월

InkEdit 컨트롤의 Stroke 이벤트를 처리하는 메서드를 나타냅니다.

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

구문

‘선언
Public Delegate Sub InkEditStrokeEventHandler ( _
    sender As Object, _
    e As InkEditStrokeEventArgs _
)
‘사용 방법
Dim instance As New InkEditStrokeEventHandler(AddressOf HandlerMethod)
public delegate void InkEditStrokeEventHandler(
    Object sender,
    InkEditStrokeEventArgs e
)
public delegate void InkEditStrokeEventHandler(
    Object^ sender, 
    InkEditStrokeEventArgs^ e
)
/** @delegate */
public delegate void InkEditStrokeEventHandler(
    Object sender,
    InkEditStrokeEventArgs e
)
JScript에서는 대리자를 지원하지 않습니다.

매개 변수

설명

  • InkEditStrokeEventHandler 대리자를 만들 때는 이벤트를 처리할 메서드를 식별합니다. 이벤트를 이벤트 처리기와 연결하려면 대리자의 인스턴스를 해당 이벤트에 추가합니다. 대리자를 제거하지 않는 경우 이벤트가 발생할 때마다 이벤트 처리기가 호출됩니다.

예제

이 예제에서는 Gesture 이벤트 및 Stroke 이벤트에 대한 알림을 신청하여 ApplicationGesture의 기능을 확장하는 방법을 보여 줍니다.

Gesture 이벤트가 발생하면 InkEdit 컨트롤의 제스처와 현재 상태를 조사합니다. 필요한 경우 제스처의 동작이 수정되고 이벤트가 취소됩니다.

Private Sub mInkEdit_Gesture(ByVal sender As Object, ByVal e As InkEditGestureEventArgs)
    ' There might be more than one gesture passed in InkEditGestureEventArgs
    ' The gestures are arranged in order of confidence from most to least
    ' This event handler is only concerned with the first (most confident) gesture
    ' and only if the gesture is ApplicationGesture.Left with strong confidence
    Dim G As Gesture = e.Gestures(0)
    If (ApplicationGesture.Left = G.Id And RecognitionConfidence.Strong = G.Confidence) Then
        Dim pInkEdit As InkEdit = DirectCast(sender, InkEdit)
        ' by default, ApplicationGesture.Left maps to Backspace
        ' If the insertion point is at the beginning of the text
        ' and there is no text selected, then Backspace does not do anything.
        ' In this case, we will alter the gesture to map to Delete instead
        If (0 = pInkEdit.SelectionStart And 0 = pInkEdit.SelectionLength And pInkEdit.Text.Length > 0) Then
            ' take out the first character of the string
            pInkEdit.Text = pInkEdit.Text.Remove(0, 1)
            ' save the stroke ID in a class level var for use in the Stroke event
            Me.mStrokeID = e.Strokes(0).Id
            ' cancel the gesture so it won't perform the default action
            e.Cancel = True
        End If
    End If
End Sub
private void mInkEdit_Gesture(object sender, InkEditGestureEventArgs e)
{
    // There might be more than one gesture passed in InkEditGestureEventArgs
    // The gestures are arranged in order of confidence from most to least
    // This event handler is only concerned with the first (most confident) gesture
    // and only if the gesture is ApplicationGesture.Left with strong confidence
    Gesture G = e.Gestures[0];
    if (ApplicationGesture.Left == G.Id &&  RecognitionConfidence.Strong == G.Confidence)
    {
        InkEdit pInkEdit = (InkEdit)sender;

        // by default, ApplicationGesture.Left maps to Backspace
        // If the insertion point is at the beginning of the text
        // and there is no text selected, then Backspace does not do anything.
        // In this case, we will alter the gesture to map to Delete instead
        if (0 == pInkEdit.SelectionStart && 0 == pInkEdit.SelectionLength && pInkEdit.Text.Length > 0)
        {
            // take out the first character of the string
            pInkEdit.Text = pInkEdit.Text.Remove(0, 1);
            // save the stroke ID in a class level var for use in the Stroke event
            this.mStrokeID = e.Strokes[0].Id;
            // cancel the gesture so it won't perform the default action
            e.Cancel = true;
        }
    }
}

Stroke 이벤트가 발생하면 해당 스트로크가 Gesture 이벤트에서 동작이 수정된 제스처를 생성하는 데 사용된 경우 이벤트가 취소됩니다. 이렇게 하면 스트로크가 렌더링되지 않습니다.

Private Sub mInkEdit_Stroke(ByVal sender As Object, ByVal e As InkEditStrokeEventArgs)
    e.Cancel = (e.Stroke.Id = Me.mStrokeID)
End Sub
private void mInkEdit_Stroke(object sender, InkEditStrokeEventArgs e)
{
    e.Cancel = (e.Stroke.Id == this.mStrokeID);
}

플랫폼

Windows Vista

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

버전 정보

.NET Framework

3.0에서 지원

참고 항목

참조

Microsoft.Ink 네임스페이스

Cursor

Stroke