编程语言
首页 > 编程语言> > c#-WPF拖放到列表框中,并带有将其放置到的预览阴影

c#-WPF拖放到列表框中,并带有将其放置到的预览阴影

作者:互联网

我编写了一个看板用户控件,可以在其中将某些卡从一列拖放到另一列(列表框/列表框项目),并且使用组件“ https://github.com/punker76/gong-wpf-dragdrop”来完成此操作.现在,我要添加一个新行为:显示预览阴影,将卡片拖放到其中,如附件中的动画gif所示:
drop shadow of card being inserted

gif动画显示了DevExpress组件正在执行此操作.除了使用DevExpress之外,我还想使用其他开源组件,扩展gong-wpf-dragdrop或自己做.

有人已经这样做或知道某个组件正在执行此操作吗?如果没有,有人有这样做的策略吗?

>我曾尝试过装饰器,但是装饰器位于另一层,因此没有在列表框中显示(可能我做错了)
>我现在要尝试的下一件事是在列表框中添加一些临时的虚拟元素,但是要使其工作起来似乎相当复杂,并且需要大量代码(也许我使这件事变得过于复杂)
>是否有人对用于使它像动画gif一样起作用的策略或组件或元素有更好的想法?

我很惊讶没有在Google上找到更多有关此主题的信息.每个人都可以使用DevExpress或Telerik进行此类操作吗?还是到目前为止,没有人发布过开源解决方案?

解决方法:

我最终实现的解决方案如下:

>我为XAML列表框中包含的每张卡添加了一个隐藏的上下阴影(属性:“ Collapsed”).
>我添加了一个依赖项属性来管理底部或顶部阴影的可见性
>我创建了一个具有以下功能的自定义drophandler:

>如果拖动的元素和下一个元素悬停,则不显示阴影
>悬停另一个元素时显示阴影(悬停上半部分时显示顶部,悬停下半部分时显示底部)

如果有人对最终解决方案/代码感兴趣,请注册您的兴趣作为评论,我会提供.如果有人对如何解决此问题有更好的想法,我也很感兴趣.

final application animated gif

标签:listboxitem,drag-and-drop,listbox,wpf,c
来源: https://codeday.me/bug/20191027/1946745.html