我在应用程序中有一个按钮。我希望它根据我是点击它(暂停动画)还是双击(重新启动动画)来做不同的事情
但是,当我双击时,它似乎首先触发了点击事件,然后是快速连续的双击。有没有解决的办法?这是一个已知问题还是我犯了一个新手错误?
编辑:对于那些询问的人,我正在使用Tapped
andDoubleTapped
事件。
我在应用程序中有一个按钮。我希望它根据我是点击它(暂停动画)还是双击(重新启动动画)来做不同的事情
但是,当我双击时,它似乎首先触发了点击事件,然后是快速连续的双击。有没有解决的办法?这是一个已知问题还是我犯了一个新手错误?
编辑:对于那些询问的人,我正在使用Tapped
andDoubleTapped
事件。
给单个选项卡一些暂停。如果出现双标签,则消除单标签事件
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
}
您可能要考虑让它两者兼而有之。把它想象成双击 Windows 中的文件夹。用户将习惯于第一次单击时发生的事情(突出显示文件夹),他们会期望双击突出显示,然后导航。
总而言之,这似乎是一个设计问题,而不是技术问题。
[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
}