我认为这是一个简单的问题,应该在几年内被问到但是无法谷歌并且不知道是否有特定的关键字。
在c#WinForm中我想拖放但我不想要DragDropEffects Move,Copy等等的图像。我想要显示半透明的图像。就像Firefox在拖动图像时一样,你会看到像鼠标一样的鼠标指针图像:)
我已经实现了DoDragDrop,DragEnter和DragDrop事件。我只想用叠加图像自定义拖动效果。
答案 0 :(得分:5)
答案 1 :(得分:0)
参加聚会可能为时9年?
我一直很喜欢拖放交互,但是发现在WinForms中使用起来很复杂。尤其是如果您希望它具有叠加效果看起来很专业。
上一次我需要拖放时,我为WinForms创建了自己的库。您可以在这里或在NuGet上找到它:
这是实现如上所示的拖放操作所需的一切:
private void picControlPreviewBehindCursor_MouseDown(object sender, MouseEventArgs e)
{
var pic = (PictureBox)sender;
pic.InitializeDragAndDrop()
.Copy()
.Immediately()
.WithData(pic.Image)
.WithPreview().BehindCursor()
.To(PreviewBoxes, (target, data) => target.Image = data);
// Copy(), Move() or Link() to define allowed effects
// Immediately() or OnMouseMove() for deferred start on mouse move
// WithData() to pass any object you like
// WithPreview() to define your preview and how it should behave
// BehindCursor() or RelativeToCursor() to define the preview placement
// To() to define target controls and how the dragged data should be used on drop
}