思ったより簡単だったのでメモメモ。因みにWindows 8のころはInkManager使ったりしてちょっとめんどかったです。
InkCanvasを置く
描画や消したりとかはInkCanvasにお任せです。
<InkCanvas x:Name="myInkCanvas" />
認識処理を書く
認識にはInkRecognizerContainerを使います。RecognizeAsyncでInkCanvasのInkPresenterのStrokeContainerと、認識対象を示す引数を渡してやれば結果が返ってきます。結果は、InkRecognitionResultのListなのでループで回してGetTextCandidatesから認識候補を取り出してあれこれします。 とりあえず、以下のような雰囲気のコードになります。(とりあえず第一候補を連結してみた)
var irc = new InkRecognizerContainer(); var results = await irc.RecognizeAsync(this.myInkCanvas.InkPresenter.StrokeContainer, InkRecognitionTarget.All); var dlg = new MessageDialog(results.Select(x => x.GetTextCandidates().First()).Aggregate((x, y) => x + y)); await dlg.ShowAsync();
結果はこんな感じです。認識できてますね。