public RecognizerControl() { this.InitializeComponent(); const double penSize = 4; // Initialize drawing attributes. These are used in inking mode. var drawingAttributes = new InkDrawingAttributes { Color = Windows.UI.Colors.Red, Size = new Windows.Foundation.Size(penSize, penSize), IgnorePressure = false, FitToCurve = true }; // Show the available recognizers _inkRecognizerContainer = new InkRecognizerContainer(); _recoView = _inkRecognizerContainer.GetRecognizers(); // Set the text services so we can query when language changes _textServiceManager = CoreTextServicesManager.GetForCurrentView(); _textServiceManager.InputLanguageChanged += TextServiceManager_InputLanguageChanged; SetDefaultRecognizerByCurrentInputMethodLanguageTag(); // Initialize the InkCanvas InkCanvas.InkPresenter.UpdateDefaultDrawingAttributes(drawingAttributes); InkCanvas.InkPresenter.InputDeviceTypes = Windows.UI.Core.CoreInputDeviceTypes.Mouse | Windows.UI.Core.CoreInputDeviceTypes.Pen | Windows.UI.Core.CoreInputDeviceTypes.Touch; InkCanvas.InkPresenter.StrokeInput.StrokeStarted += StrokeInput_StrokeStarted; InkCanvas.InkPresenter.StrokeInput.StrokeEnded += StrokeInput_StrokeEnded; _recoTimer = new DispatcherTimer() { Interval = TimeSpan.FromSeconds(2) }; _recoTimer.Tick += _recoTimer_Tick; }
public PracticePage() { this.InitializeComponent(); random = new Random(); SystemNavigationManager.GetForCurrentView().AppViewBackButtonVisibility = AppViewBackButtonVisibility.Visible; SystemNavigationManager.GetForCurrentView().BackRequested += OnBackRequested; Gana.InkPresenter.InputDeviceTypes = Windows.UI.Core.CoreInputDeviceTypes.Mouse | Windows.UI.Core.CoreInputDeviceTypes.Pen; InkDrawingAttributes drawingAttributes = new InkDrawingAttributes(); drawingAttributes.Size = new Size(10, 10); Gana.InkPresenter.StrokesCollected += InkPresenter_StrokesCollected; drawingAttributes.Color = Windows.UI.Colors.Black; drawingAttributes.IgnorePressure = false; drawingAttributes.FitToCurve = true; Gana.InkPresenter.UpdateDefaultDrawingAttributes(drawingAttributes); inkRecognizerContainer = new InkRecognizerContainer(); recoView = inkRecognizerContainer.GetRecognizers(); if (recoView.Count() > 0) { foreach (InkRecognizer recognizer in recoView) { if (recognizer.Name == "Microsoft 日本語手書き認識エンジン") { inkRecognizerContainer.SetDefaultRecognizer(recognizer); } } } else { ShowMessage("Please Install Japanese Handwriting (www.pinyinjoe.com/windows-10/windows-10-chinese-handwriting-speech-display-language-packs.htm)"); } }
public MainPage() { this.InitializeComponent(); InkDrawingAttributes drawingAttributes = new InkDrawingAttributes(); drawingAttributes.Color = Windows.UI.Colors.Black; drawingAttributes.Size = new Size(4, 4); drawingAttributes.IgnorePressure = false; drawingAttributes.FitToCurve = true; inkRecognizerContainer = new InkRecognizerContainer(); recoView = inkRecognizerContainer.GetRecognizers(); if (recoView.Count > 0) { foreach (InkRecognizer recognizer in recoView) { RecoName.Items.Add(recognizer.Name); } } else { RecoName.IsEnabled = false; RecoName.Items.Add("No Recognizer Available"); } RecoName.SelectedIndex = 0; // Set the text services so we can query when language changes textServiceManager = CoreTextServicesManager.GetForCurrentView(); textServiceManager.InputLanguageChanged += TextServiceManager_InputLanguageChanged; SetDefaultRecognizerByCurrentInputMethodLanguageTag(); InkCanvas.InkPresenter.UpdateDefaultDrawingAttributes(drawingAttributes); InkCanvas.InkPresenter.InputDeviceTypes = Windows.UI.Core.CoreInputDeviceTypes.Mouse | Windows.UI.Core.CoreInputDeviceTypes.Pen | Windows.UI.Core.CoreInputDeviceTypes.Touch; }
public MainPage() { this.InitializeComponent(); ink.InkPresenter.InputDeviceTypes = CoreInputDeviceTypes.Mouse | CoreInputDeviceTypes.Touch | CoreInputDeviceTypes.Pen; var container = new InkRecognizerContainer(); foreach (var temp in container.GetRecognizers()) { Text.Text += temp.Name + "\r\n"; } }
private static void CreateRecognizerNameList() { _recognizerNameList = new List <string>(); var container = new InkRecognizerContainer(); var recognizers = container.GetRecognizers(); if (recognizers != null && recognizers.Count > 0) { foreach (var recognizer in recognizers) { _recognizerNameList.Add(recognizer.Name); } } }
public Scenario2() { this.InitializeComponent(); // Initialize drawing attributes. These are used in inking mode. InkDrawingAttributes drawingAttributes = new InkDrawingAttributes(); drawingAttributes.Color = Windows.UI.Colors.Red; double penSize = 4; drawingAttributes.Size = new Windows.Foundation.Size(penSize, penSize); drawingAttributes.IgnorePressure = false; drawingAttributes.FitToCurve = true; // Show the available recognizers inkRecognizerContainer = new InkRecognizerContainer(); recoView = inkRecognizerContainer.GetRecognizers(); if (recoView.Count > 0) { foreach (InkRecognizer recognizer in recoView) { RecoName.Items.Add(recognizer.Name); } } else { RecoName.IsEnabled = false; RecoName.Items.Add("No Recognizer Available"); } RecoName.SelectedIndex = 0; // Set the text services so we can query when language changes textServiceManager = CoreTextServicesManager.GetForCurrentView(); textServiceManager.InputLanguageChanged += TextServiceManager_InputLanguageChanged; SetDefaultRecognizerByCurrentInputMethodLanguageTag(); // Initialize reco tooltip recoTooltip = new ToolTip(); recoTooltip.Content = InstallRecoText; ToolTipService.SetToolTip(InstallReco, recoTooltip); // Initialize the InkCanvas inkCanvas.InkPresenter.UpdateDefaultDrawingAttributes(drawingAttributes); inkCanvas.InkPresenter.InputDeviceTypes = Windows.UI.Core.CoreInputDeviceTypes.Mouse | Windows.UI.Core.CoreInputDeviceTypes.Pen | Windows.UI.Core.CoreInputDeviceTypes.Touch; this.Unloaded += Scenario2_Unloaded; this.SizeChanged += Scenario2_SizeChanged; }
public Scenario2() { this.InitializeComponent(); //read language related resource file .strings/en or zh-cn/resources.resw Run run1 = new Run(); run1.Text = ResourceManagerHelper.ReadValue("Description2_p1"); this.textDes.Inlines.Add(run1); this.textDes.Inlines.Add(new LineBreak()); // Initialize drawing attributes. These are used in inking mode. InkDrawingAttributes drawingAttributes = new InkDrawingAttributes(); drawingAttributes.Color = Windows.UI.Colors.Red; double penSize = 4; drawingAttributes.Size = new Windows.Foundation.Size(penSize, penSize); drawingAttributes.IgnorePressure = false; drawingAttributes.FitToCurve = true; // Show the available recognizers inkRecognizerContainer = new InkRecognizerContainer(); recoView = inkRecognizerContainer.GetRecognizers(); if (recoView.Count > 0) { foreach (InkRecognizer recognizer in recoView) { RecoName.Items.Add(recognizer.Name); } } else { RecoName.IsEnabled = false; RecoName.Items.Add("No Recognizer Available"); } RecoName.SelectedIndex = 0; // Set the text services so we can query when language changes textServiceManager = CoreTextServicesManager.GetForCurrentView(); textServiceManager.InputLanguageChanged += TextServiceManager_InputLanguageChanged; SetDefaultRecognizerByCurrentInputMethodLanguageTag(); // Initialize the InkCanvas inkCanvas.InkPresenter.UpdateDefaultDrawingAttributes(drawingAttributes); inkCanvas.InkPresenter.InputDeviceTypes = Windows.UI.Core.CoreInputDeviceTypes.Mouse | Windows.UI.Core.CoreInputDeviceTypes.Pen | Windows.UI.Core.CoreInputDeviceTypes.Touch; this.SizeChanged += Scenario2_SizeChanged; }
private void Page_Loaded(object sender, RoutedEventArgs e) { Container = new InkRecognizerContainer(); var recognizers = Container.GetRecognizers(); if (recognizers != null && recognizers.Count > 0) { // 以下為取得目前的語系, 並設定使用目前語系的辨識引擎 string recognizerName = InkRecognizerHelper.LanguageTagToRecognizerName(CultureInfo.CurrentCulture.Name); var recognizer = recognizers.FirstOrDefault((x) => x.Name == recognizerName); if (recognizer != null) { Container.SetDefaultRecognizer(recognizer); } } }
private async void recognize_Click(object sender, RoutedEventArgs e) { if (inkCanvas.InkPresenter.StrokeContainer.GetStrokes().Count == 0) { return; } InkRecognizerContainer container = new InkRecognizerContainer(); lblMsg.Text = "手写识别器: "; lblMsg.Text += Environment.NewLine; // 获取当前支持的手写识别器列表,如果有多个的话可以通过 SetDefaultRecognizer 方法来指定默认的手写识别器 IReadOnlyList <InkRecognizer> recognizers = container.GetRecognizers(); foreach (InkRecognizer ir in recognizers) { lblMsg.Text += ir.Name; lblMsg.Text += Environment.NewLine; } lblMsg.Text += Environment.NewLine; lblMsg.Text += "识别结果: "; lblMsg.Text += Environment.NewLine; IReadOnlyList <InkRecognitionResult> result = await container.RecognizeAsync(inkCanvas.InkPresenter.StrokeContainer, InkRecognitionTarget.All); foreach (string textCandidate in result[0].GetTextCandidates()) { lblMsg.Text += textCandidate; lblMsg.Text += Environment.NewLine; } // 将识别结果通知给 InkStrokeContainer inkCanvas.InkPresenter.StrokeContainer.UpdateRecognitionResults(result); // 识别结果通知给 InkStrokeContainer 后,被识别的 InkStroke 的 Recognized 将被标记为 true // 如果在识别的时候使用的是 InkRecognitionTarget.All 则所有的 InkStroke 的 Recognized 将被标记为 true // 如果在识别的时候使用的是 InkRecognitionTarget.Selected 则被选中的 InkStroke 的 Recognized 将被标记为 true IReadOnlyList <InkStroke> strokes = inkCanvas.InkPresenter.StrokeContainer.GetStrokes(); foreach (InkStroke stroke in strokes) { Debug.WriteLine("stroke.Recognized: " + stroke.Recognized); } // 这个获取到的就是之前通过 InkStrokeContainer 方式设置的数据 result = inkCanvas.InkPresenter.StrokeContainer.GetRecognitionResults(); }
// </SnippetChangeRecognizer> // <SnippetInitializeRecognizerList> // Populate the recognizer combo box with installed recognizers. private void InitializeRecognizerList() { // <SnippetInkRecognizerContainer> // Create a manager for the handwriting recognition process. inkRecognizerContainer = new InkRecognizerContainer(); // </SnippetInkRecognizerContainer> // <SnippetGetRecognizers> // Retrieve the collection of installed handwriting recognizers. IReadOnlyList <InkRecognizer> installedRecognizers = inkRecognizerContainer.GetRecognizers(); // </SnippetGetRecognizers> // inkRecognizerContainer is null if a recognition engine is not available. if (!(inkRecognizerContainer == null)) { comboInstalledRecognizers.ItemsSource = installedRecognizers; } }
async private void Button_Click(object sender, RoutedEventArgs e) { try { var container = new InkRecognizerContainer(); var recognizers = container.GetRecognizers(); if (recognizers != null && recognizers.Count > 0) { // 以下三行為取得Combobox選擇語系, 並設定語系的辨識引擎 string recognizerName = recognizersCombobox.SelectedItem.ToString(); var recognizer = recognizers.FirstOrDefault((x) => x.Name == recognizerName); if (recognizer != null) { container.SetDefaultRecognizer(recognizer); } } if (inkCanvas.InkPresenter.StrokeContainer != null) { var result = await container.RecognizeAsync(inkCanvas.InkPresenter.StrokeContainer, InkRecognitionTarget.All); string returnText = string.Empty; inkCanvas.InkPresenter.StrokeContainer.Clear(); Candidates.Clear(); foreach (var r in result) { foreach (var c in r.GetTextCandidates()) { Candidates.Add(c); } } listview.Visibility = Visibility.Visible; button.Visibility = Visibility.Collapsed; } } catch (Exception ex) { Debug.WriteLine(ex.ToString()); } //if (result != null) //{ // returnText = result[0].GetTextCandidates()[0]; //} //OnRecognized(returnText); }
async private void Button_Click(object sender, RoutedEventArgs e) { var container = new InkRecognizerContainer(); var recognizers = container.GetRecognizers(); if (recognizers != null && recognizers.Count > 0) { // 以下三行為取得目前的語系, 並設定使用目前語系的辨識引擎 string recognizerName = InkRecognizerHelper.LanguageTagToRecognizerName(CultureInfo.CurrentCulture.Name); var recognizer = recognizers.FirstOrDefault((x) => x.Name == recognizerName); if (recognizer != null) { container.SetDefaultRecognizer(recognizer); } } var result = await container.RecognizeAsync(inkCanvas.InkPresenter.StrokeContainer, InkRecognitionTarget.All); }
public MainPage() { this.InitializeComponent(); InkDrawingAttributes drawingAttributes = new InkDrawingAttributes(); drawingAttributes.Color = Windows.UI.Colors.Black; drawingAttributes.Size = new Size(4, 4); drawingAttributes.IgnorePressure = false; drawingAttributes.FitToCurve = true; inkRecognizerContainer = new InkRecognizerContainer(); recoView = inkRecognizerContainer.GetRecognizers(); if (recoView.Count > 0) { foreach (InkRecognizer recognizer in recoView) { RecoName.Items.Add(recognizer.Name); } } else { RecoName.IsEnabled = false; RecoName.Items.Add("No Recognizer Available"); } RecoName.SelectedIndex = 0; InkCanvas.InkPresenter.UpdateDefaultDrawingAttributes(drawingAttributes); InkCanvas.InkPresenter.InputDeviceTypes = Windows.UI.Core.CoreInputDeviceTypes.Mouse | Windows.UI.Core.CoreInputDeviceTypes.Pen | Windows.UI.Core.CoreInputDeviceTypes.Touch; // 音声合成の追加 synthesizer = new SpeechSynthesizer(); }