开发者社区 问答 正文

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-15 12:35:48 497 分享 版权
阿里云 AI 助理回答

在WPF或类似UI框架中,SystemParameters.MinimumHorizontalDragDistanceSystemParameters.MinimumVerticalDragDistance 是DPI感知的。这意味着这些值会根据系统的DPI设置自动调整,以保持与系统默认拖动阈值一致的用户体验,无论显示器的缩放比例如何。

因此,你不需要手动缩放这个值4。直接使用这两个属性进行比较即可确保你的应用在不同DPI设置下表现一致,与Windows默认的拖动开始距离相匹配。你的代码片段已经是正确做法,它能够适应不同的DPI缩放场景,无需额外修改来处理DPI相关缩放问题。

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