1

Windows Phone アプリケーションの RichTextBox のコードには、次のものがあります。

 var link = new Hyperlink();
                        if (!string.IsNullOrEmpty(linkUrl))
                        {
                            link.NavigateUri = new Uri(linkUrl);
                        }
                        link.Foreground = new SolidColorBrush(Colors.Blue);
                        link.TargetName = "_blank";

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

                        paragraph.Inlines.Add(link);

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

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

NavidateTo メソッドでナビゲーションをキャンセルするにはどうすればよいですか?

アップデート

private static void NavidateTo(オブジェクト送信者, RoutedEventArgs routedEventArgs) {

    if (MessageBox.Show(
                     Constants.BrowserNavigating,
                     "",
                      MessageBoxButton.OKCancel) == MessageBoxResult.Cancel)
    {
        //cancel Navigation
        var phoneApplicationFrame = Application.Current.RootVisual as PhoneApplicationFrame;
        if (Application.Current.RootVisual as PhoneApplicationFrame != null)
            phoneApplicationFrame.Navigating += new NavigatingCancelEventHandler(NavigationService_Navigating);
    }
    else
    {
        StateManager.Set("Browser", "true");
    }
}

public static void NavigationService_Navigating(object sender, NavigatingCancelEventArgs e)
{
    {
        e.Cancel = true;
    }
}

これは役に立たない

4

1 に答える 1

0

this.NavigationService.StopLoading(); を使用します。

次の方法も検討してください。

イベントにサブスクライブしNavigatingます。

void NavigationService_Navigating(object sender, NavigatingCancelEventArgs e)
{
    // Don't allow refreshing of a static page
    if (DO SOME CHECKS)
        {
            e.Cancel = true;
        }
}

そして、msdn でこの記事を見てください。

http://msdn.microsoft.com/en-us/library/system.windows.navigation.navigationservice.navigating.aspx

于 2012-05-11T08:26:59.443 に答える