次の方法で共有


RecognizerContextRecognitionWithAlternatesEventArgs.CustomData プロパティ

認識結果のカスタム データを格納しているオブジェクトを取得します。

名前空間 :  Microsoft.Ink
アセンブリ :  Microsoft.Ink (Microsoft.Ink.dll 内)

構文

'宣言
Public ReadOnly Property CustomData As Object
'使用
Dim instance As RecognizerContextRecognitionWithAlternatesEventArgs
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 コレクションに追加され、BackgroundRecognizeWithAlternates メソッドが呼び出されて、現在の時刻が customData パラメータに渡されます。

Private Sub mInkOverlay_Stroke3(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.BackgroundRecognizeWithAlternates(DateTime.Now)
End Sub
private void mInkOverlay_Stroke3(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.BackgroundRecognizeWithAlternates(DateTime.Now);
}

バックグラウンドでの認識が完了すると、RecognitionWithAlternates イベントが発生します。このイベントの処理中に、認識の結果 (代替候補を含む) がリスト ボックスに配置されます。さらに、認識が開始された時刻が、RecognizerContextRecognitionWithAlternatesEventArgs オブジェクトの 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

参照

参照

RecognizerContextRecognitionWithAlternatesEventArgs クラス

RecognizerContextRecognitionWithAlternatesEventArgs メンバ

Microsoft.Ink 名前空間

RecognizerContext

RecognizerContext.RecognitionWithAlternates

RecognizerContext.BackgroundRecognizeWithAlternates