WPF 在列表框中拖放,带有拖放位置的预览阴影
WPF drag and drop in listbox with preview shadow of where it will be dropped
我编写了一个看板用户控件,我可以在其中将一些卡片从一列拖放到另一列(列表框/列表框项),并且我使用组件“https://github.com/punker76/gong-wpf-dragdrop”来执行此操作。现在我想添加一个新行为:在卡片将被放置的位置显示预览阴影,就像附件中的动画 gif 一样:
动画 gif 显示了 DevExpress 组件执行此操作。我不想使用 DevExpress,而是想使用另一个开源组件,扩展 gong-wpf-dragdrop 或者自己做。
是否有人已经这样做过或知道某个组件正在这样做?如果没有,有人有这样做的策略吗?
- 我试过装饰物,但装饰物在另一层,没有在列表框中显示(也许我做错了什么)
- 我现在正在尝试的下一件事是向列表框添加一些临时的虚拟元素,但要让它工作似乎相当复杂并且需要大量代码(也许我把这件事复杂化了)
- 有人有更好的策略或组件或元素的想法来使它像在动画 gif 中一样工作吗?
我很惊讶在 Google 上没有找到更多关于这个主题的信息。每个人都用 DevExpress 或 Telerik 做这样的事情吗?或者直到现在还没有人发布开源解决方案?
我最终实现的解决方案如下:
我在XAML(属性:"Collapsed")的列表框中为每张卡片添加了隐藏的底部和顶部阴影。
我添加了一个依赖项属性来管理底部或顶部阴影的可见性
我创建了一个具有以下功能的自定义 drophandler:
- 如果拖动的元素悬停在下一个元素上,则不显示阴影
- 悬停另一个元素时显示阴影(悬停上半部分时显示顶部,悬停下半部分时显示底部)
如果有人对最终结果感兴趣 solution/code 请将您的兴趣注册为评论,我会提供。如果有人对如何解决这个问题有更好的想法,我也很感兴趣。
我编写了一个看板用户控件,我可以在其中将一些卡片从一列拖放到另一列(列表框/列表框项),并且我使用组件“https://github.com/punker76/gong-wpf-dragdrop”来执行此操作。现在我想添加一个新行为:在卡片将被放置的位置显示预览阴影,就像附件中的动画 gif 一样:
动画 gif 显示了 DevExpress 组件执行此操作。我不想使用 DevExpress,而是想使用另一个开源组件,扩展 gong-wpf-dragdrop 或者自己做。
是否有人已经这样做过或知道某个组件正在这样做?如果没有,有人有这样做的策略吗?
- 我试过装饰物,但装饰物在另一层,没有在列表框中显示(也许我做错了什么)
- 我现在正在尝试的下一件事是向列表框添加一些临时的虚拟元素,但要让它工作似乎相当复杂并且需要大量代码(也许我把这件事复杂化了)
- 有人有更好的策略或组件或元素的想法来使它像在动画 gif 中一样工作吗?
我很惊讶在 Google 上没有找到更多关于这个主题的信息。每个人都用 DevExpress 或 Telerik 做这样的事情吗?或者直到现在还没有人发布开源解决方案?
我最终实现的解决方案如下:
我在XAML(属性:"Collapsed")的列表框中为每张卡片添加了隐藏的底部和顶部阴影。
我添加了一个依赖项属性来管理底部或顶部阴影的可见性
我创建了一个具有以下功能的自定义 drophandler:
- 如果拖动的元素悬停在下一个元素上,则不显示阴影
- 悬停另一个元素时显示阴影(悬停上半部分时显示顶部,悬停下半部分时显示底部)
如果有人对最终结果感兴趣 solution/code 请将您的兴趣注册为评论,我会提供。如果有人对如何解决这个问题有更好的想法,我也很感兴趣。