我遇到了用户在选择对象时拖动对象的问题。我已经尝试了几种使用鼠标事件来设置不太敏感阈值的方法。对于 example .
我认为它们不起作用主要是因为我使用的是 Piccolo 图形引擎。
我知道这可以通过注册表完成,但我不想弄乱我的用户注册表项。
另一种方法似乎是将 pinvoke 与 SystemParametersInfo;
以及 SPI_SETDRAGHEIGHT 和 SPI_SETDRAGWIDTH 参数一起使用。
我知道如何调用它,
[DllImport("user32.dll", SetLastError = true)]
static extern bool SystemParametersInfo(int uiAction, int uiParam, IntPtr pvParam, int fWinIni);
我知道 uiAction
参数值是,
SPI_SETDRAGHEIGHT = 0x004D
SPI_SETDRAGWIDTH = 0x004C
我知道 uiParam
是宽度或高度。
除此之外,我被困住了。我真的不明白这些东西,也不知道如何设置最后两个参数。
有C++(?)代码here .
但我对 C 变体以及将它们转换为 C# 的了解令人遗憾。
那么有人可以帮我在我的应用程序中设置拖动拖动阈值吗?
最佳答案
我检查了 Piccolo 源代码,发现拖动阈值不取决于您的系统设置,因此使用 PInvoke 调用 SystemParametersInfo 在这里对您没有帮助。但是,可以通过更改 PDragSequenceEventHandler
对象的 MinDragStartDistance
属性来配置阈值。默认值为 0,这可能解释了为什么您的用户对它过于敏感感到沮丧。
不过,我没有使用 Piccolo 的经验,所以我无法真正评论如何获得对该特定属性的访问权限。
关于c# - 如何更改 Windows 窗体应用程序中的拖动阈值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24268860/