/// <summary> /// Provides a hint to the player, will show all available anagrams for the letters /// in their rack. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnHint_Click(object sender, EventArgs e) { Cursor.Current = Cursors.WaitCursor; WordHint.ClearText(); WordHint.BeginUpdate(); foreach (var w in Game.Resolver.FindMoves(PlayerManager.CurrentPlayer.Name == PlayerManager.PlayerOne.Name ? Game.Player1: Game.Player2)) { WordHint.AddWord(w); } WordHint.EndUpdate(); Cursor.Current = Cursors.Default; }
private void OnMicDictationResponseReceivedHandler(object sender, SpeechResponseEventArgs e) { if (e.PhraseResponse.RecognitionStatus == RecognitionStatus.EndOfDictation || e.PhraseResponse.RecognitionStatus == RecognitionStatus.DictationEndSilenceTimeout) { Dispatcher.Invoke( (Action)(() => { StartButton_Click(null, null); })); return; } Dispatcher.Invoke( (Action)(() => { RecognizeResult.Document.Blocks.Clear(); if (e.PhraseResponse.Results.Length > 0) { RecognizeResult.AppendText(e.PhraseResponse.Results[0].DisplayText); } RecognizeResult.SelectAll(); RecognizeResult.Selection.ApplyPropertyValue(TextElement.ForegroundProperty, Brushes.Black); RecognizeResult.Selection.Select(RecognizeResult.Document.ContentEnd, RecognizeResult.Document.ContentEnd); })); if (e.PhraseResponse.Results.Length > 0) { Task.Run(() => { { using (var wc = new WebClient()) { wc.Headers.Add("Ocp-Apim-Subscription-Key", "b53f42d2ebb64913861d26cfe65da32a"); var res = wc.UploadString("https://westus.api.cognitive.microsoft.com/text/analytics/v2.0/keyPhrases", "{\"documents\":[{\"language\":\"en\",\"id\":\"1\",\"text\":\"?\"}]})".Replace("?", e.PhraseResponse.Results[0].DisplayText)); res = Regex.Match(res, "\"keyPhrases\":\\[(.*?)\\]").Groups[1].Value; Dispatcher.Invoke( (Action)(() => { RecognizeResult2.Document.Blocks.Clear(); RecognizeResult.Selection.Select(RecognizeResult.Document.ContentStart, RecognizeResult.Document.ContentEnd); RecognizeResult2.AppendText(RecognizeResult.Selection.Text); RecognizeResult.Selection.Select(RecognizeResult.Document.ContentEnd, RecognizeResult.Document.ContentEnd); foreach (Match match in Regex.Matches(res, "\"(.+?)\"")) { var word = match.Groups[1].Value; var si = e.PhraseResponse.Results[0].DisplayText.IndexOf(word); var sp = GetPoint(RecognizeResult2.Document.ContentStart, si); var ep = GetPoint(sp, word.Length); RecognizeResult2.Selection.Select(sp, ep); RecognizeResult2.Selection.ApplyPropertyValue(TextElement.BackgroundProperty, new SolidColorBrush(Colors.Yellow)); } })); Task.Run(() => { using (var wc1 = new WebClient()) { var html = "<style>b{font-weight:normal;background-color:yellow}</style><ul>"; foreach (Match match in Regex.Matches(res, "\"(.+?)\"")) { wc1.Headers.Add("Ocp-Apim-Subscription-Key", "74c0f1f7c19b49018ddd9949a9d7ea56"); wc1.Headers.Add("User-Agent", "Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; Touch; rv:11.0) like Gecko"); var word = match.Groups[1].Value; var res1 = wc1.DownloadString("https://api.cognitive.microsoft.com/bing/v5.0/search?count=1&responseFilter=Webpages&textDecorations=true&textFormat=HTML&q=" + System.Uri.EscapeUriString(word)); res1 = Regex.Match(res1, "\"snippet\": \"(.*?)\"").Groups[1].Value; html += "<li>" + res1 + "</li>"; } html += "</ul>"; Dispatcher.Invoke(() => { WordHint.NavigateToString(html); }); } }); } } }); } }