다음을 통해 공유


RecognizerContextRecognitionEventArgs.CustomData 속성

업데이트: 2007년 11월

인식 결과에 대한 사용자 지정 데이터가 포함된 개체를 가져옵니다.

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

구문

‘선언
Public ReadOnly Property CustomData As Object
‘사용 방법
Dim instance As RecognizerContextRecognitionEventArgs
Dim value As Object

value = instance.CustomData
public Object CustomData { get; }
public:
property Object^ CustomData {
    Object^ get ();
}
/** @property */
public Object get_CustomData()
public function get CustomData () : Object

속성 값

형식: System.Object
인식 결과에 대한 사용자 지정 데이터가 포함된 개체입니다.

설명

RecognizerContext 개체의 BackgroundRecognizeWithAlternates 메서드를 호출하면 사용자 데이터를 제공할 수 있습니다. RecognizerContext 개체가 RecognitionWithAlternates 이벤트를 발생시키면 RecognizerContextRecognitionWithAlternatesEventArgs 개체의 CustomData 속성에서 사용자 지정 데이터를 사용할 수 있습니다.

예제

이 예제에서는 InkOverlay 개체에 작성되는 각 스트로크를 자동으로 인식하고 인식 결과를 표시합니다.

사용자가 스트로크를 완성하여 Stroke 이벤트가 발생하면 새로 만들어진 스트로크가 RecognizerContext 개체의 Strokes 컬렉션에 추가되고 customData 매개 변수에 현재 시간을 전달하여 BackgroundRecognize 메서드가 호출됩니다.

Private Sub mInkOverlay_Stroke4(ByVal sender As Object, ByVal e As InkCollectorStrokeEventArgs)
    ' in case background recognition is still occurring, stop it
    mRecognizerContext.StopBackgroundRecognition()
    ' add the stroke, and start recognition
    mRecognizerContext.Strokes.Add(e.Stroke)
    mRecognizerContext.BackgroundRecognize(DateTime.Now)
End Sub
private void mInkOverlay_Stroke4(object sender, InkCollectorStrokeEventArgs e)
{
    // in case background recognition is still occurring, stop it
    mRecognizerContext.StopBackgroundRecognition();
    // add the stroke, and start recognition, passing current time
    mRecognizerContext.Strokes.Add(e.Stroke);
    mRecognizerContext.BackgroundRecognize(DateTime.Now);
}

백그라운드 인식이 완료되면 Recognition 이벤트가 발생합니다. 이 이벤트를 처리하는 동안 인식 결과가 목록 상자에 배치됩니다. 또한 RecognizerContextRecognitionEventArgs 개체의 CustomData 속성에서 인식이 시작된 시간을 검색하여 인식에 필요한 총 경과 시간을 계산하는 데 사용합니다.

' event fires when recognition results (without alternates) are ready
Private Sub RecognizerContext_Recognition(ByVal sender As Object, _
            ByVal e As RecognizerContextRecognitionEventArgs)
    ' when updating a control, must use Invoke() since controls are
    ' not thread safe and recognition occurs on a different thread
    If Me.InvokeRequired Then
        ' recursively call this method via Invoke()
        Me.Invoke( _
            New RecognizerContextRecognitionEventHandler(AddressOf RecognizerContext_Recognition), _
            New Object() {sender, e} _
        )
        Return
    End If
    If RecognitionStatus.NoError = e.RecognitionStatus Then
        listBoxRecognitionResults.Items.Add(e.Text)
        ' get the custom data and calculate elapsed time
        Dim startTime As DateTime = DirectCast(e.CustomData, DateTime)
        Dim endTime As DateTime = DateTime.Now
        Dim span As TimeSpan = New TimeSpan(endTime.Ticks - startTime.Ticks)
        ' display the number of seconds for this recognition to finish
        listBoxRecognitionResults.Items.Add(span.TotalSeconds.ToString())
    End If
End Sub
// event fires when recognition results (without alternates) are ready
private void RecognizerContext_Recognition(object sender, RecognizerContextRecognitionEventArgs e)
{
    // when updating a control, must use Invoke() since controls are
    // not thread safe and recognition occurs on a different thread
    if (this.InvokeRequired)
    {
        // recursively call this method via Invoke()
        this.Invoke(
            new RecognizerContextRecognitionEventHandler(RecognizerContext_Recognition),
            new object[] { sender, e }
            );
        return;
    }

    if (RecognitionStatus.NoError == e.RecognitionStatus)
    {
        listBoxRecognitionResults.Items.Add(e.Text);
        // get the custom data and calculate elapsed time
        DateTime startTime = (DateTime)e.CustomData;
        DateTime endTime = DateTime.Now;
        TimeSpan span = new TimeSpan(endTime.Ticks - startTime.Ticks);
        // display the number of seconds for this recognition to finish
        listBoxRecognitionResults.Items.Add(span.TotalSeconds.ToString());
    }
}

플랫폼

Windows Vista

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

버전 정보

.NET Framework

3.0에서 지원

참고 항목

참조

RecognizerContextRecognitionEventArgs 클래스

RecognizerContextRecognitionEventArgs 멤버

Microsoft.Ink 네임스페이스

RecognizerContext

RecognizerContext.Recognition

RecognizerContext.BackgroundRecognize