Пауза WP7 HyperlinkButton? - PullRequest
       4

Пауза WP7 HyperlinkButton?

0 голосов
/ 12 октября 2011

Я пытаюсь приостановить HyperlinkButton в приложении WP7, чтобы пользователь мог подтвердить, покинуть приложение или нет, и перейти по ссылке. Серия событий будет выглядеть так:

  1. Пользователь нажимает HyperlinkButton
  2. MessageBox всплывает, чтобы подтвердить, что они хотят покинуть приложение и посетить этот внешний сайт
  3. Если пользователь соглашается, веб-страница загружается; если нет, пользователь возвращается в приложение

Мой вопрос: можно ли заставить HyperlinkButton дождаться ответа пользователя?

На данный момент я взломал решение, как показано ниже:

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

ConfirmBeforeLoading затем запрашивает пользователя и, если он согласен, создает новый WebBrowserTask, используя адрес в свойстве Tag.

Это работает, но кажется "хакерским". Можно ли как-нибудь использовать обычный HyperlinkButton с NavigateUri и просто ждать ответа пользователя?

Заранее большое спасибо!

1 Ответ

1 голос
/ 12 октября 2011

попробуйте это, может быть, полезно для вас,

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

это работа для меня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...