开发者社区 问答 正文

Windows内置最小拖动距离参数是否为DPI缩放?

我的应用程序中有一个窗口,仅当鼠标移动一定距离时才应拖动该窗口。我希望该距离与Windows默认距离相同,但是无论显示器的DPI缩放比例是多少,它都应该为4。我是否必须缩放值4,或者实际上是DPI感知的?

我正在执行以下操作以检查是否应该开始拖动:


    private static bool HasMouseMovedFarEnough(MouseEventArgs e)
    {
        Debug.Assert(_startPoint != null);

        Vector delta = _startPoint.Value - e.GetPosition(null);

        return Math.Abs(delta.X) > SystemParameters.MinimumHorizontalDragDistance ||
               Math.Abs(delta.Y) > SystemParameters.MinimumVerticalDragDistance;
    }

展开
收起
Puppet 2019-12-11 08:43:54 426 分享 版权
阿里云 AI 助理回答

在WPF或类似UI框架中处理鼠标拖动时,SystemParameters.MinimumHorizontalDragDistanceSystemParameters.MinimumVerticalDragDistance 是DPI感知的。这意味着这些值会根据系统的DPI设置自动调整,以保持与系统默认的拖动敏感度一致。

当你在代码中使用这两个属性时,你不需要手动缩放它们的值。Windows操作系统会确保这些值反映了当前显示器DPI缩放比例下的默认拖动距离。因此,你的实现已经考虑了DPI变化,只要按照当前方式使用这些系统参数,就可以在不同DPI设置下保持一致的用户体验。

简而言之,你不需要手动缩放4这个固定值,而是应该继续使用SystemParameters.MinimumHorizontalDragDistanceSystemParameters.MinimumVerticalDragDistance来判断是否开始拖动窗口,这样无论用户的显示器DPI缩放比例如何,应用行为都将与Windows的默认行为保持一致。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答
问答分类:
问答标签:
问答地址: