我正在尝试找出如何实现在 WPF 中称为“拖动装饰器”的东西(我相信是这样——还没有使用 WPF 的经验)。几天来我一直在搜索和尝试不同的建议解决方案,但没有一个看起来像我所追求的。我希望尽可能接近 Windows 的 native 外观。
它是我们在 Firefox 中拖动地址栏地球仪或 IE 中的 BigBlueE™ 等时在鼠标指针略上方和左侧看到的半透明图像。
在此页面上双击并拖动一个词,您就会明白我的意思。光标保持为 Cursors.No
,直到遇到 TextBox
——此时我们会看到被拖动文本的图形表示。显示光标的标准移动/复制视觉指示器(右下角的小灰色方 block ;复制时加号)。
Sheridan 说 here他解决了这个问题;我希望收到他的提示。
建议使用 VB 或 C# 都可以,但必须使用 WinForms。
如果我能找到正确的方向,我就可以从那里开始。
谢谢。
更新:我已经确定了我的首选解决方案,here .我知道我最初要求光标的 native 移动/复制指示器保持不变,但这里的 SetDropDescription()
功能非常好,我改变了主意并决定改用它。下面是 WPF 示例在运行时的样子:
这很不错。这都是 Interop,所以它应该直接转换为 WinForms。
最佳答案
可以使用自定义光标实现此效果。您可以按照 this answer 中的说明创建游标.当您开始拖动操作时,创建光标,并在 GiveFeedback
事件中,将 Cursor.Current
设置为该光标并将 e.UseDefaultCursors
设置为错误。
这是一个完整的例子(使用 LINQPad):
关于c# - WinForms 中的 WPF 装饰器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23426536/