C# WPF MouseButtonEventArgs时间戳值为负?

C# WPF MouseButtonEventArgs时间戳值为负?,c#,wpf,triggers,mouseevent,C#,Wpf,Triggers,Mouseevent,我有一些WPF触发器的代码,用于检查双击: private void HandleButtonUp(object sender, MouseButtonEventArgs mouseEventArgs) { if (mouseEventArgs.ChangedButton == MouseButton.Left && (mouseEventArgs.Timestamp - _lastClick) < SystemInfo.Do

我有一些WPF触发器的代码,用于检查双击:

private void HandleButtonUp(object sender, MouseButtonEventArgs mouseEventArgs)
    {
        if (mouseEventArgs.ChangedButton == MouseButton.Left &&
            (mouseEventArgs.Timestamp - _lastClick) < SystemInfo.DoubleClickTime)
        {
            this.InvokeActions(mouseEventArgs);
            _lastClick = 0; // Require 2 clicks again
        }
        else 
            _lastClick = mouseEventArgs.Timestamp;
    }
private void HandleButtonUp(对象发送器,MouseButtonEventArgs mouseEventArgs)
{
如果(mouseEventArgs.ChangedButton==MouseButton.Left&&
(mouseEventArgs.Timestamp-_lastClick)
到目前为止,这种做法一直运作良好。但今天,突然间,单次点击就引发了这一行动。当我检查代码时,我发现时间戳值为负值,这导致它总是小于SystemInfo.DoubleClickTime(500是我设置的值)


这正常吗?为什么会突然改变?

InputEventArgs.Timestamp属性的行为类似于,您可以在其中找到以下备注:

此属性的值派生自系统计时器,并且 存储为32位有符号整数。因此,如果系统运行 对于,TickCount将连续从零增加到Int32.MaxValue 大约24.9天,然后跳到Int32.MinValue,这是一个 负数,然后在接下来的24.9秒内递增回零 天

TickCount与Ticks属性不同,后者是 自1/1/0001,12:00am以来已过的100纳秒间隔

使用DateTime.Now属性获取当前本地日期和 这台计算机上的时间

忽略跳转发生时的罕见情况(24.9天后,然后每49.7天),您可以这样检查:

Math.Abs(mouseEventArgs.Timestamp - _lastClick) < SystemInfo.DoubleClickTime
Math.Abs(mouseEventArgs.Timestamp-\u lastClick)