暂停WP7 HyperlinkBut​​ton?

时间:2011-10-12 03:51:50

标签: windows-phone-7 hyperlink

我正在尝试'暂停'WP7应用中的HyperlinkButton,以便用户可以确认是否离开应用并点按链接。一系列事件如下:

  1. 用户点击HyperlinkButton
  2. MessageBox弹出以确认他们要离开应用并访问此外部网站
  3. 如果用户同意,则加载网页;如果没有,则用户返回到应用程序
  4. 我的问题是:我可以 HyperlinkButton 等待用户的回复吗?

    目前,我已经破解了以下解决方案:

    <HyperlinkButton Tag="http://www.google.com/" Tap="ConfirmBeforeLoading()"/>
    
    然后

    ConfirmBeforeLoading会提示用户,如果他们同意,则会使用WebBrowserTask属性中的地址创建新的Tag

    这样可行,但似乎是“hackish”。有什么方法可以使用普通的HyperlinkButton NavigateUri并让它等待用户的回复吗?

    非常感谢提前!

1 个答案:

答案 0 :(得分:1)

尝试这个,可能对你有帮助,

    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....
    }

它为我工作。