gpt4 book ai didi

c# - WinForms 中的 WPF 装饰器

转载 作者:行者123 更新时间:2023-11-30 15:29:36 45 4
gpt4 key购买 nike

我正在尝试找出如何实现在 WPF 中称为“拖动装饰器”的东西(我相信是这样——还没有使用 WPF 的经验)。几天来我一直在搜索和尝试不同的建议解决方案,但没有一个看起来像我所追求的。我希望尽可能接近 Windows 的 native 外观。

它是我们在 Firefox 中拖动地址栏地球仪或 IE 中的 BigBlueE™ 等时在鼠标指针略上方和左侧看到的半透明图像。

在此页面上双击并拖动一个词,您就会明白我的意思。光标保持为 Cursors.No,直到遇到 TextBox——此时我们会看到被拖动文本的图形表示。显示光标的标准移动/复制视觉指示器(右下角的小灰色方 block ;复制时加号)。

Sheridan 说 here他解决了这个问题;我希望收到他的提示。

建议使用 VB 或 C# 都可以,但必须使用 WinForms。

如果我能找到正确的方向,我就可以从那里开始。

谢谢。


更新:我已经确定了我的首选解决方案,here .我知道我最初要求光标的 native 移动/复制指示器保持不变,但这里的 SetDropDescription() 功能非常好,我改变了主意并决定改用它。下面是 WPF 示例在运行时的样子:

DragDropSample

这很不错。这都是 Interop,所以它应该直接转换为 WinForms。

最佳答案

可以使用自定义光标实现此效果。您可以按照 this answer 中的说明创建游标.当您开始拖动操作时,创建光标,并在 GiveFeedback 事件中,将 Cursor.Current 设置为该光标并将 e.UseDefaultCursors 设置为错误。

这是一个完整的例子(使用 LINQPad):

https://gist.github.com/thomaslevesque/837d1a8295b33be2b404

关于c# - WinForms 中的 WPF 装饰器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23426536/

45 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com