private void Button_Click(object sender, RoutedEventArgs e) { WebBrowser webBrowser = (sender as Button).FindName("webBrowser") as WebBrowser; Border border = (sender as Button).FindName("border") as Border; HyperlinkTextBlock hyperlink = (sender as Button).FindName("hyperlink") as HyperlinkTextBlock; string url = (webBrowser.DataContext as WebUrlChatMessage).Url; url = Regex.Replace(url, @"^/web ", string.Empty); if (url.IndexOf(@"youtube.com/watch?v=") > 0) { url = url.Replace("/watch?v=", "/v/"); url += "&hl=en"; webBrowser.Height = 240; webBrowser.Width = 320; } try { webBrowser.Navigate(url); webBrowser.Visibility = System.Windows.Visibility.Visible; hyperlink.Visibility = Visibility.Visible; border.Visibility = Visibility.Collapsed; } catch { webBrowser.Visibility = System.Windows.Visibility.Collapsed; border.Visibility = System.Windows.Visibility.Collapsed; hyperlink.Visibility = Visibility.Collapsed; } }
public static HyperlinkTextBlock xxxGetClearHyperlink(string header, MouseButtonEventHandler on_click) { HyperlinkTextBlock hyperlink_clear = new HyperlinkTextBlock(); hyperlink_clear.Text = header; hyperlink_clear.OnClick += on_click; return(hyperlink_clear); }
private void OpenUrlInTagOfTextBlock(object sender, MouseButtonEventArgs e) { HyperlinkTextBlock tb = (HyperlinkTextBlock)sender; string url = (string)tb.Tag; MainWindowServiceDispatcher.Instance.OpenUrlInBrowser(url); e.Handled = true; }
public void SpecifyPaperSet(GoogleScholarScrapePaperSet gssps) { DocsPanel.Children.Clear(); { // Add the header StackPanel sp = new StackPanel(); HyperlinkTextBlock tb_gs = new HyperlinkTextBlock(); tb_gs.HorizontalAlignment = HorizontalAlignment.Center; tb_gs.Text = "Go to GoogleScholar"; tb_gs.FontWeight = FontWeights.Bold; tb_gs.Tag = gssps.Url; tb_gs.OnClick += OpenUrlInTagOfTextBlock; sp.Children.Add(tb_gs); DocsPanel.Children.Add(sp); DocsPanel.Children.Add(new AugmentedSpacer()); } bool alternate = false; foreach (var gssp in gssps.Papers) { StackPanel sp = new StackPanel(); try { string html = gssp.abstract_html; html = html.Replace("<br>", " "); string xaml = HtmlToXamlConverter.ConvertHtmlToXaml(html, true); FlowDocument fd = (FlowDocument)XamlReader.Parse(xaml); RichTextBox rtb = new RichTextBox(fd); rtb.Width = 320; rtb.Height = 200; sp.ToolTip = rtb; } catch (Exception ex) { Logging.Warn(ex, "Problem parsing GS HTML abstract"); } if (null != gssp.source_url) { HyperlinkTextBlock tb_title = new HyperlinkTextBlock(); tb_title.Text = gssp.title; tb_title.Tag = gssp.source_url; tb_title.OnClick += OpenUrlInTagOfTextBlock; sp.Children.Add(tb_title); } else { TextBlock tb_title = new TextBlock(); tb_title.Text = gssp.title; tb_title.FontWeight = FontWeights.Bold; sp.Children.Add(tb_title); } TextBlock tb_authors = new TextBlock(); tb_authors.Text = gssp.authors; sp.Children.Add(tb_authors); TextBlock tb_citedby = new TextBlock(); tb_citedby.Text = gssp.cited_by_header; sp.Children.Add(tb_citedby); if (0 < DocsPanel.Children.Count) { DocsPanel.Children.Add(new AugmentedSpacer()); } alternate = !alternate; ListFormattingTools.AddGlowingHoverEffect(sp); DocsPanel.Children.Add(sp); } }