コード例 #1
0
ファイル: MainPage.xaml.cs プロジェクト: prafulsurve/DrawIt
        private async void btnRecognize_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                txtRecognizedText.Visibility     = Windows.UI.Xaml.Visibility.Visible;
                btnSaveRecognizedText.Visibility = Windows.UI.Xaml.Visibility.Visible;
                canvas.SetValue(Grid.RowProperty, 3);
                canvas.SetValue(Grid.RowSpanProperty, 1);
                MyInkManager.Mode = InkManipulationMode.Inking;
                x = await MyInkManager.RecognizeAsync(InkRecognitionTarget.Recent);

                MyInkManager.UpdateRecognitionResults(x);
                foreach (InkRecognitionResult i in x)
                {
                    RecognizedText          = i.GetTextCandidates();
                    FinalRecognizedText    += " " + RecognizedText[0];
                    txtRecognizedText.Text += FinalRecognizedText;
                }
                FinalRecognizedText = string.Empty;
            }
            catch (Exception)
            {
                if (canvas.Children.Count == 0)
                {
                    var MsgDlg = new MessageDialog("Your screen has no handwriting. Please write something with pencil tool then click recognize.", "Error while recognizing");
                    MsgDlg.ShowAsync();
                }
                else
                {
                    var MsgDlg = new MessageDialog("Please clear the screen then write something with pencil tool", "Error while recognizing");
                    MsgDlg.ShowAsync();
                }
            }
        }
コード例 #2
0
        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);
            }
        }