2012-05-11 9 views
-1

В моем телефоне приложении Windows, я использую RichTextBox элементОтменить открытие ссылки в браузере

У меня есть гиперссылка на него, и когда пользователь нажимает на нее есть диалог: Вы хотите, чтобы открыть эту ссылку в exteranl браузера. Если пользователь скажет «нет», внешний браузер не должен открываться. Я отменяю навигацию, но в любом случае - открывается внешний браузер. Как отменить открытие ссылки в браузере?

//Constructor 
     static Helper() 
       { 
        var phoneApplicationFrame = Application.Current.RootVisual as PhoneApplicationFrame; 
        if (Application.Current.RootVisual as PhoneApplicationFrame != null) 
        { 
         phoneApplicationFrame.Navigating += new NavigatingCancelEventHandler(NavigationService_Navigating); 
        } 

       } 

link.Foreground = new SolidColorBrush(Colors.Blue); 
          link.MouseOverForeground = new SolidColorBrush(Colors.Blue); 
          link.TargetName = "_blank"; 

          var linkText = new Run() { Text = linkDesc }; 
          link.Inlines.Add(linkText); 
          link.Click += new RoutedEventHandler(NavidateTo); 

private static void NavidateTo(object sender, RoutedEventArgs routedEventArgs) 
     { 

      if (MessageBox.Show(
          Constants.BrowserNavigating, 
          "", 
           MessageBoxButton.OKCancel) == MessageBoxResult.Cancel) 
      { 
       StateManager.Set("ExternalBrowser", "true"); 
      } 
      else 
      { 
       StateManager.Set("Browser", "true"); 
      } 
     } 

     public static void NavigationService_Navigating(object sender, NavigatingCancelEventArgs e) 
     { 
      var res = StateManager.Get("ExternalBrowser"); 
      if (res != null) 
      { 
       StateManager.Remove("ExternalBrowser"); 
       e.Cancel = true; 
      } 

     } 
+0

Мы не можем сказать вам, что случилось с вашим кодом, если вы не указали нам свой код. – RhysW

+0

Возможный дубликат [Как отменить навигацию в RichTextBox] (http://stackoverflow.com/questions/10547834/how-cancel-navigation -в-RichTextBox) – CharlesB

ответ

1

Вместо того, чтобы иметь HyperlinkButton открыть саму ссылку, не указать NavigationUri но обрабатывать Tap события самостоятельно.

В случае если у вас возникли вопросы, свяжитесь с продавцом, для которого нет ответа.
Это будет намного проще, чем попытка отменить то, что уже выполняется.

Смежные вопросы