Note that there are some explanatory texts on larger screens.

plurals
  1. POWPF Page navigation
    primarykey
    data
    text
    <p>I use a custom textblock in my WPF Application, when I use it in WPF Windows it worked good but when I use it in a WPF Page it make a problem. When I click on a link in my Custom Control it browse the link and show in browser but the WPF page navigate back to another WPF Page too (first page)</p> <pre><code>namespace Dtwitter.Controls { public class TweetTextBlock : TextBlock { public TweetTextBlock() { } #region Dependency properties public string TweetText { get { return (string)GetValue(TweetTextProperty); } set { SetValue(TweetTextProperty, value); } } // Using a DependencyProperty as the backing store for TweetText. This enables animation, styling, binding, etc... public static readonly DependencyProperty TweetTextProperty = DependencyProperty.Register("TweetText", typeof(string), typeof(TweetTextBlock), new FrameworkPropertyMetadata(string.Empty, new PropertyChangedCallback(OnTweetTextChanged))); #endregion private static void OnTweetTextChanged(DependencyObject obj, DependencyPropertyChangedEventArgs args) { string text = args.NewValue as string; if (!string.IsNullOrEmpty(text)) { TweetTextBlock textblock = (TweetTextBlock)obj; textblock.Inlines.Clear(); textblock.Inlines.Add(" "); string[] words = Regex.Split(text, @"([ \(\)\{\}\[\]])"); string possibleUserName = words[0].ToString(); if ((possibleUserName.Length &gt; 1) &amp;&amp; (possibleUserName.Substring(1, 1) == "@")) { textblock = FormatName(textblock, possibleUserName); words.SetValue("", 0); } foreach (string word in words) { // clickable hyperlinks if (UrlShorteningService.IsUrl(word)) { try { Hyperlink link = new Hyperlink(); link.NavigateUri = new Uri(word); link.Inlines.Add(word); link.Click += new RoutedEventHandler(link_Click); link.ToolTip = "Open link in the default browser"; textblock.Inlines.Add(link); } catch { //TODO:What are we catching here? Why? Log it? textblock.Inlines.Add(word); } } // clickable @name else if (word.StartsWith("@")) { textblock = FormatName(textblock, word); } // clickable #hashtag else if (word.StartsWith("#")) { string hashtag = String.Empty; Match foundHashtag = Regex.Match(word, @"#(\w+)(?&lt;suffix&gt;.*)"); if (foundHashtag.Success) { hashtag = foundHashtag.Groups[1].Captures[0].Value; Hyperlink tag = new Hyperlink(); tag.Inlines.Add(hashtag); string hashtagUrl = "http://search.twitter.com/search?q=%23{0}"; // The main application has access to the Settings class, where a // user-defined hashtagUrl can be stored. This hardcoded one that // is used to set the NavigateUri is just a default behavior that // will be used if the click event is not handled for some reason. tag.NavigateUri = new Uri(String.Format(hashtagUrl, hashtag)); tag.ToolTip = "Show statuses that include this hashtag"; tag.Tag = hashtag; tag.Click += new RoutedEventHandler(hashtag_Click); textblock.Inlines.Add("#"); textblock.Inlines.Add(tag); textblock.Inlines.Add(foundHashtag.Groups["suffix"].Captures[0].Value); } } else { textblock.Inlines.Add(word); } } textblock.Inlines.Add(" "); } } public static TweetTextBlock FormatName(TweetTextBlock textblock, string word) { string userName = String.Empty; string firstLetter = word.Substring(0, 1); Match foundUsername = Regex.Match(word, @"@(\w+)(?&lt;suffix&gt;.*)"); if (foundUsername.Success) { userName = foundUsername.Groups[1].Captures[0].Value; Hyperlink name = new Hyperlink(); name.Inlines.Add(userName); name.NavigateUri = new Uri("http://twitter.com/" + userName); name.ToolTip = "View @" + userName + "'s recent tweets"; name.Tag = userName; name.Click += new RoutedEventHandler(name_Click); if (firstLetter != "@") textblock.Inlines.Add(firstLetter); textblock.Inlines.Add("@"); textblock.Inlines.Add(name); textblock.Inlines.Add(foundUsername.Groups["suffix"].Captures[0].Value); } return textblock; } static void link_Click(object sender, RoutedEventArgs e) { try { System.Diagnostics.Process.Start(((Hyperlink)sender).NavigateUri.ToString()); } catch { //TODO: Log specific URL that caused error MessageBox.Show("There was a problem launching the specified URL.", "Error", MessageBoxButton.OK, MessageBoxImage.Exclamation); } } } </code></pre> <p>}</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload