8

我在应用程序中有一个按钮。我希望它根据我是点击它(暂停动画)还是双击(重新启动动画)来做不同的事情

但是,当我双击时,它似乎首先触发了点击事件,然后是快速连续的双击。有没有解决的办法?这是一个已知问题还是我犯了一个新手错误?

编辑:对于那些询问的人,我正在使用TappedandDoubleTapped事件。

4

3 回答 3

17

给单个选项卡一些暂停。如果出现双标签,则消除单标签事件

  bool singleTap;
    private async void control_Tapped_1(object sender, TappedRoutedEventArgs e)
    {
        this.singleTap = true;
        await Task.Delay(200);
        if (this.singleTap)
        {
              // Single tab Method .
        }
    }

    private void control_DoubleTapped_1(object sender, DoubleTappedRoutedEventArgs e)
    {
        this.singleTap = false;

        // Double tab Method  
  }
于 2013-07-02T14:44:29.847 回答
4

您可能要考虑让它两者兼而有之。把它想象成双击 Windows 中的文件夹。用户将习惯于第一次单击时发生的事情(突出显示文件夹),他们会期望双击突出显示,然后导航。

总而言之,这似乎是一个设计问题,而不是技术问题。

于 2012-11-14T04:07:56.080 回答
0
[System.Runtime.InteropServices.DllImport("user32.dll")]
static extern uint GetDoubleClickTime();
    bool _singleTapped = false;

        //Tapped event handler
        private async void control_Tapped(object sender, TappedRoutedEventArgs e)
        {
        _singleTapped = true;
            //var x = GetDoubleClickTime();
            //GetDoubleClickTime() gets the maximum number of milliseconds that can elapse between a first click and a second click
            await Task.Delay(TimeSpan.FromMilliseconds(GetDoubleClickTime()));

            if (!_singleTapped)
            { return; }
           //SingleTapped code
        }

        //DoubleTapped event handler
        private async void control_DoubleTapped(object sender, DoubleTappedRoutedEventArgs e)
        {
            _singleTapped = false;
            //DoubleTapped code
        }
于 2017-02-22T23:43:04.983 回答