// 文字認識 private async void Recognize() { string text = ""; if (inkManager.GetStrokes().Count() != 0) { var recognizer = inkManager.GetRecognizers().FirstOrDefault(r => r.Name.Contains("日本語")); // 文字認識エンジンの設定 inkManager.SetDefaultRecognizer(recognizer); // 文字認識 IReadOnlyList <InkRecognitionResult> results = await inkManager.RecognizeAsync(InkRecognitionTarget.All); text = results.Select(x => x.GetTextCandidates().First()).Aggregate((x, y) => x + y); } Result += "," + text; }
async private void appBarRecognize_Click(object sender, RoutedEventArgs e) { if (inkManager.GetStrokes().Count > 0) { try { // BUG 339829, 629537, 1846969 SaveAsync on Mobile, non-Chinese recognizers on Mobile. //string zh = "Microsoft 中文(简体)手写识别器"; //string zhCN = "Microsoft 中文(简体)手写识别器"; //string zhHansCN = "Microsoft 中文(简体)手写识别器"; //string zhHant = "Microsoft 中文(繁體)手寫辨識器"; //string zhTW = "Microsoft 中文(繁體)手寫辨識器"; //string enUS = "Microsoft English (US) Handwriting Recognizer"; IReadOnlyList <InkRecognizer> recognizers = inkManager.GetRecognizers(); bool recognizerFound = false; if (recognizers != null && recognizers.Count > 0) { foreach (InkRecognizer recognizer in recognizers) { foreach (KeyValuePair <string, string> item in RecognizerHelper.RecognizerNames) { status.Log(string.Format( CultureInfo.CurrentCulture, LocalizableStrings.INK_RECOGNIZER_SEARCH, recognizer.Name)); if (recognizer.Name == item.Value) { inkManager.SetDefaultRecognizer(recognizer); recognizerFound = true; status.Log(string.Format( CultureInfo.CurrentCulture, LocalizableStrings.INK_RECOGNIZER_FOUND, item.Key)); break; } } if (recognizerFound) { break; } } if (recognizerFound) { IReadOnlyList <InkRecognitionResult> results = await inkManager.RecognizeAsync(InkRecognitionTarget.All); if (results != null) { inkManager.UpdateRecognitionResults(results); StringBuilder builder = new StringBuilder(); builder.Append(LocalizableStrings.INK_RECOGNIZER_PREFIX); foreach (InkRecognitionResult result in results) { builder.Append(" " + result.GetTextCandidates()[0]); } status.Log(builder.ToString()); } else { status.Log(LocalizableStrings.INK_RECOGNIZER_FAIL); } } else { status.Log(LocalizableStrings.INK_RECOGNIZER_NOT_FOUND); } } else { status.Log(LocalizableStrings.INK_NO_RECOGNIZERS); } } catch (Exception ex) { Debug.WriteLine("InkPage.appBarRecognize_Click: " + ex.ToString()); } } else { status.Log(LocalizableStrings.INK_EMPTY_INK_RECOGNIZE); } }