C# 具有叠加/不透明图像的拖放效果
Posted
技术标签:
【中文标题】C# 具有叠加/不透明图像的拖放效果【英文标题】:C# Drag and Drop Effect with Overlay/Opaque Image 【发布时间】:2011-06-02 18:31:38 【问题描述】:我认为这将是一个简单的问题,应该在过去几年中被问到,但无法谷歌搜索并且不知道是否有特定的关键字。
在 c# WinForm 中我想做拖放,但我不想要 DragDropEffects 移动、复制或其他的图像。我想显示一个半不透明的图像。就像 Firefox 在拖动图像时一样,您会看到图像像幽灵一样跟随鼠标指针 :)
我已经实现了 DoDragDrop、DragEnter 和 DragDrop 事件。我只是想用叠加图像自定义拖动效果。
【问题讨论】:
【参考方案1】:参加聚会可能为时已晚 9 年 ?
我一直喜欢拖放交互,但发现它在 WinForms 中使用起来很复杂。特别是如果你想让它看起来很专业,有叠加层。
上次需要拖放时,我为 WinForms 创建了自己的库。您可以在此处或在 NuGet 上找到它:
https://github.com/awaescher/FluentDragDrop这是实现拖放所需的一切,如上所示:
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
【讨论】:
以上是关于C# 具有叠加/不透明图像的拖放效果的主要内容,如果未能解决你的问题,请参考以下文章
C# 模拟 Windows 中的默认拖放功能(拖动过程中的透明图像)