我在应用中有一个按钮。我希望它根据我是否点击它(暂停动画)或双击(重新启动动画)来做不同的事情
然而,当我双击时,它似乎首先触发点击事件然后快速连续点击两次。有没有解决的办法?这是一个已知的问题还是我犯了一个菜鸟错误?
编辑:对于那些提问,我正在使用Tapped
和DoubleTapped
事件。
答案 0 :(得分:16)
将一些暂停给单个标签。如果出现双标签,则单个标签事件被删除
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
}
答案 1 :(得分:4)
您可能需要考虑让它同时执行这两项操作。想想它就像双击Windows中的文件夹一样。用户将习惯第一次点击时发生的事情(突出显示文件夹),他们将期望双击以突出显示,然后导航。
总而言之,这似乎是一个设计问题,而不是技术问题。
答案 2 :(得分: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
}