共用方式為


筆跡辨識

並非所有應用程式都需要使用辨識,但因為大部分的應用程式都是使用文字做為其主要資料類型所設計,所以將筆跡轉換成文字的能力非常有價值。 您可以使用平板電腦平臺 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 參考主題。