在下图中,有6个橙色矩形,用作放置目标。蓝色矩形位于橙色矩形的前面。蓝色和橙色矩形都是同一容器的子项。
我遇到的问题是当光标在蓝色矩形上时,不会触发DragEnter,DragLeave和Drop事件。蓝色矩形似乎阻止事件通过橙色矩形。这意味着用户必须将光标精确定位在蓝色矩形之间才能放下项目。我想扩展拖放区域以包含整个橙色矩形,同时在橙色矩形前面仍然有蓝色矩形。
如果重要的话,橙色矩形是FrameworkElements,蓝色矩形是DrawingVisuals。 FrameworkElements有拖累和放大删除功能,而DrawingVisuals非常简单,但没有。
无论光标是否在蓝色矩形上,如何在光标悬停时触发橙色矩形的DragEnter,DragLeave和Drop事件?
答案 0 :(得分:1)
我能想到的最合理的解决方案是将橙色矩形放在蓝色矩形的顶部。
然而,因为我不想让橙色矩形覆盖蓝色矩形,所以我不得不想出一个由透明矩形和橙色帽子组成的视觉效果,如图所示:
所以,这是它的工作原理: