2017-04-22 10 views
1

私はpage2を開くボタンでpage1を持っています。 Page2を開くには約1秒かかり、タップすると選択内容を保存してユーザーをpage1に戻すオプション(ユーザーコントロール)のリストが含まれています。ページが完全にロードされるまでタップを無視する

ユーザーがページ1のボタンをタップすると、ユーザーが気になるようになると、ページ2がロードされて表示される前にもう一度タップします。問題は、タップが認識され、page2の最初のオプションがまだ表示されていなくてもタップされていることです。これは選択を保存し、ユーザーをpage1に戻します。

とにかくページ2が完全に読み込まれるまで、タップ/クリックイベントが認識されるのを止めることはできますか?

答えて

0

ひとつのアイデアは、そのユーザは再びそれをクリックすることはできませんので、/ タップに加入をタップ内側に、その後、最初のページに OnNaviagatedTo イベントをクリックします/イベントは、それを解除クリックすることであってもよいです。その後、彼が戻ると、OnNavigatedToが再び購読します。あなたはまた、に設定されるフラグについて考えるかもしれません。をタップ/クリックして、で却下されました。イベントの2ページ目が読み込まれました。サンプル:

public sealed partial class MainPage : Page 
{ 
    public MainPage() 
    { 
     this.InitializeComponent(); 
    } 

    protected override void OnNavigatedTo(NavigationEventArgs e) 
    { 
     Debug.WriteLine("OnNavigatedTo"); 
     base.OnNavigatedTo(e); 
     this.button.Click += Button_Click; 
    } 

    private async void Button_Click(object sender, RoutedEventArgs e) 
    { 
     (sender as Button).Click -= Button_Click; 
     await Task.Delay(1000); // simulate heavy load of second page 
     this.Frame.Navigate(typeof(SecondPage)); 
    } 
} 
+0

良いアイデア - 今すぐ試してみます。 – Rick

+0

実際には、ページ1のボタンの2番目のタップではないので、これはうまくいくとは思えません。つまり、ページ1のボタンの2番目のタップですが、実際にはページ2のコントロールのタップです - しかし、page2のフラグのあなたの考えはそれを行う必要があります。 – Rick

+0

@Rickページを読み込むのに時間がかかりますか?重い仕事や* Loaded *イベントの後に2ページ目にイベントを購読できますか? – Romasz

関連する問題