共用方式為


筆跡辨識

並非所有應用程式都需要使用辨識,但由於大部分的應用程式都是以文字作為其主要數據類型所設計,因此將筆跡轉換成文字的能力非常有價值。 您可以使用平板電腦平臺 API 的辨識功能來查詢可用的辨識引擎相關信息,例如可辨識的語言。 然後,您可以將 Strokes 集合從 Ink 物件傳送至辨識引擎,並讓其傳回 RecognitionResult 物件。

RecognizerContext 物件

RecognizerContext 物件是給定辨識器的一個實例。 RecognizerContext 物件可讓您以同步或異步方式辨識指定的筆劃集合。 當進行異步辨識時,RecognizerContext 物件會在應用程式的事件回呼中返回 RecognitionResult 物件。

辨識器和辨識器物件

單一平板電腦可能會有一或多個辨識器可供使用。 您可以查詢辨識器的集合,以判斷要使用的辨識器。 辨識器會提供其功能的特定資訊,例如它可以辨識的語言和製造商。

若要判斷是否已安裝至少一個辨識器,請具現化 InkRecognizerContext 物件,如下列C++和 C# 程式代碼範例所示。 如果辨識器不存在,CoCreateInstance 呼叫會失敗。

CComPtr<IInkRecognizerContext> g_pIInkRecoContext;
hr = CoCreateInstance(CLSID_InkRecognizerContext, 
      NULL, CLSCTX_INPROC_SERVER,
      IID_IInkRecognizerContext, 
(void **) &g_pIInkRecoContext);
if (FAILED(hr)) 
{
      ::MessageBox(NULL, TEXT("No recognizers installed.\nExiting."), 
      gc_szAppName, MB_ICONERROR);
      return -1;
}
try
{
  Recognizers recos = new Recognizers();//Check for recognizer.
  Recognizer defReco = recos.GetDefaultRecognizer();
  recoContext = defReco.CreateRecognizerContext();
}
catch
{
  MessageBox.Show("No recognizers installed.");
}

RecognitionResult 和 RecognitionAlternate 物件

辨識的結果會在 RecognitionResult 物件中傳回。 結果包含 TopString 屬性中的最佳結果字串,以及 RecognitionAlternates 集合中的替代結果集合。 RecognitionResult 物件可以與其產生的原始 Strokes 集合一起保存。

RecognizerGuide 結構

辨識器指南可以包含列和行,並讓辨識器有更好的上下文來執行辨識。 例如,您可以在使用者的螢幕上繪製水平線,幾乎就像一張規則的紙張,以顯示手寫應該發生的位置(這種類型的指南只包含數據列,而且沒有欄)。 如果使用者在行上寫入,而不是某些任意空間,辨識精確度就會改善。

下圖顯示具有兩行輸入的 RecognizerGuide 結構。

顯示雙行辨識器指南的 圖

下圖顯示具有四個數據行和三個數據列的 RecognizerGuide 結構。

顯示三到四個辨識器指南的 圖

如需使用 RecognizerGuide 結構的詳細資訊,請參閱 RecognizerGuide 參考主題。