Windows phone 7 暂停WP7超链接按钮?

Windows phone 7 暂停WP7超链接按钮?,windows-phone-7,hyperlink,Windows Phone 7,Hyperlink,我正在尝试在WP7应用程序中“暂停”一个超链接按钮,以便用户可以确认是否离开应用程序并跟随链接。这一系列的事件看起来像: 用户单击超链接按钮 MessageBox弹出确认他们想要离开应用程序并访问此外部站点 如果用户同意,则加载网页;如果没有,用户将返回应用程序 我的问题是:我可以让超链接按钮等待用户的响应吗? 目前,我已经破解了一个解决方案,如下所示: <HyperlinkButton Tag="http://www.google.com/" Tap="ConfirmBeforeLoad

我正在尝试在WP7应用程序中“暂停”一个
超链接按钮
,以便用户可以确认是否离开应用程序并跟随链接。这一系列的事件看起来像:

  • 用户单击超链接按钮
  • MessageBox
    弹出确认他们想要离开应用程序并访问此外部站点
  • 如果用户同意,则加载网页;如果没有,用户将返回应用程序
  • 我的问题是:我可以让
    超链接按钮
    等待用户的响应吗?

    目前,我已经破解了一个解决方案,如下所示:

    <HyperlinkButton Tag="http://www.google.com/" Tap="ConfirmBeforeLoading()"/>
    
    
    
    confirbeforeloading
    然后提示用户,如果用户同意,它将使用
    标记中的地址创建一个新的
    WebBrowserTask

    这是可行的,但似乎有点“黑客”。是否有任何方法可以将正常的
    HyperlinkButton
    NavigateUri
    一起使用,让它等待用户的响应


    非常感谢

    试试这个,也许对你有帮助

        Popup mypopup;   //golbal variable
    
        private void hyperlinkButton1_Click(object sender, RoutedEventArgs e)
    
        {
            LayoutRoot.Opacity = 0.6;
            mypopup = new Popup();
            Border border = new Border();
            StackPanel st = new StackPanel();
    
            TextBlock tb = new TextBlock();
            tb.Text = "Visit website";
            tb.FontSize = 24;
    
            Button btnok = new Button();
            btnok.Content = "Ok";
            btnok.Click += new RoutedEventHandler(btnok_Click);
            Button btncancel = new Button();
            btncancel.Content = "Cancel";
            btncancel.Click += new RoutedEventHandler(btncancel_Click);
    
            st1.Orientation = System.Windows.Controls.Orientation.Horizontal;
            st1.Children.Add(btnok);
            st1.Children.Add(btncancel);
    
            st.Children.Add(tb);
            st.Children.Add(st1); 
    
            border.Child = st;
            mypopup.VerticalOffset = 25;
            mypopup.HorizontalOffset = 25;
            mypopup.Margin = new Thickness(LayoutRoot.ActualWidth / 4, LayoutRoot.ActualHeight / 3, 0, 0);
            mypopup.Child = border;
            mypopup.IsOpen = true;
        }
    
    
        void btncancel_Click(object sender, RoutedEventArgs e)
    
        {
            LayoutRoot.Opacity = 1;
            mypopup.IsOpen = false;
        }
    
        void btnok_Click(object sender, RoutedEventArgs e)
    
        {
            //here what do you want....
        }
    

    这对我来说很有用。

    为什么不使用常规按钮,将内容设置为URL,在点击处理程序中弹出消息框,并在用户同意的情况下导航?这当然是可能的,Praetorian,我只是认为
    超链接按钮
    更容易适应这种情况。不过,我认为使用你建议的其他控件会更容易。谢谢Pavan,这不是我最初的想法,但我会尝试一下。