如何从Windows UWP应用程序查询双击持续时间?

如何从Windows UWP应用程序查询双击持续时间?,uwp,windows-runtime,c++-cx,c++-winrt,Uwp,Windows Runtime,C++ Cx,C++ Winrt,在我的Windows UWP应用程序中,我有一个组件可以在双击时做出反应。我通过响应CoreIndependentInputSource的PointerPressed事件实现了这一点。在事件处理程序中,我得到了以下代码: if((e->CurrentPoint->Timestamp - _lastTimestamp) < _doubleClickDuration) { Dispatcher->RunAsync(CoreDispatcherPriority::Norma

在我的Windows UWP应用程序中,我有一个组件可以在双击时做出反应。我通过响应
CoreIndependentInputSource
PointerPressed
事件实现了这一点。在事件处理程序中,我得到了以下代码:

if((e->CurrentPoint->Timestamp - _lastTimestamp) < _doubleClickDuration)
{
  Dispatcher->RunAsync(CoreDispatcherPriority::Normal, ref new DispatchedHandler([this]()
  {
    // Do whatever needs to be done on double-taps
  }));
}

_lastTimestamp = e->CurrentPoint->Timestamp;
if((e->CurrentPoint->Timestamp-\u lastTimestamp)<\u双击持续时间)
{
Dispatcher->RunAsync(CoreDispatcherPriority::Normal,ref new DispatchedHandler([this]()
{
//做任何需要做的事情都要用两个水龙头
}));
}
_lastTimestamp=e->CurrentPoint->Timestamp;
\u双击持续时间
是定义双击持续时间的变量

代码按预期工作,但我面临的问题是我需要将双击持续时间设置为“合理”值。对一个人来说合理的可能不是对另一个人,这就是为什么Windows允许您在控制面板中配置双击的持续时间

有一个名为
GetDoubleClickTime
的函数,它似乎返回在Windows中配置的值。但是,该函数被标记为“[仅限桌面应用程序]”,这意味着我无法从Windows UWP应用程序调用该函数


Windows UWP与该功能等效的是什么,或者我如何计算双击的配置持续时间?

如我问题下面的评论所述,可以通过
ui设置访问Windows的双击持续时间。首先,必须构造该类的object的object。我作为类成员使用以下代码行执行此操作:

Windows::UI::ViewManagement::UISettings _uiSettings;
双击持续时间,我认为与双击持续时间相同,可以通过
\u uiSettings
对象的属性
DoubleClickTime
访问。它返回一个
unsigned int
,以毫秒为单位表示双击持续时间

因为我问题中代码的行
e->CurrentPoint->Timestamp
以微秒为单位返回时间,所以有必要将
双击时间
与1000相乘,以便能够比较这些值

因此,完整代码现在如下所示:

if((e->CurrentPoint->Timestamp - _lastTimestamp) < (_uiSettings.DoubleClickTime * 1000))
{
  Dispatcher->RunAsync(CoreDispatcherPriority::Normal, ref new DispatchedHandler([this]()
  {
    // Do whatever needs to be done on double-taps
  }));
}

_lastTimestamp = e->CurrentPoint->Timestamp;
if((e->CurrentPoint->Timestamp-\u lastTimestamp)<(\u uiSettings.DoubleClickTime*1000))
{
Dispatcher->RunAsync(CoreDispatcherPriority::Normal,ref new DispatchedHandler([this]()
{
//做任何需要做的事情都要用两个水龙头
}));
}
_lastTimestamp=e->CurrentPoint->Timestamp;
在Windows控制面板的鼠标设置中更改双击持续时间也会更改
DoubleClickTime
属性的返回值

请注意,以这种方式更改值会更改注册表项
HKEY\u CURRENT\u USER\Control Panel\Mouse
中的
DoubleClickSpeed
的值。默认值为500(毫秒)


这里有很多。我不知道是否有专门针对触摸输入的设置。看来是头奖了。它返回的值与通过控制面板指定的值相对应。它似乎正是存储在Windows注册表中的“HKEY\U CURRENT\U USER\Control Panel\Mouse\DoubleClickSpeed”中的内容“这是以毫秒为单位的值。如果你把这个作为答案,我很乐意接受。谢谢。欢迎光临。您已经设置了一个项目来验证解决方案,这使您能够更好地得出答案。