我有一个应用程序,其中有一个用户控件,其中包含一个带有正方形的 ItemsControl(由边框和底层控件表示)。把它想象成一个棋盘。
由于我的 ItemTemplate 包含一个边框,因此它不支持像 GridView 或 ListView 这样的拖放。之前我尝试对我的方块同时使用 GridView 和 ListView ,但是 GUI 变得太迟钝,所以我切换到一个简单的边框,这使它更快。
通过连接 Manipulation 事件,我仍然设法获得了我的边框及其内容的拖动行为(至少在 GUI 方面)。但是,当我尝试将一个正方形(边框)拖到另一个正方形时,我似乎无法触发 drop 事件。我需要知道目标方格是哪个。
我知道,因为我自己在做拖放功能,所以我需要做一些事情来挂钩边框的放置事件,但是什么?
我还尝试订阅边界事件 PointerEntered、PointerMoved 等,以找出指针在哪个方格上,当释放按钮时,我会知道目标方格是哪个。这似乎只在两个方向上起作用(向右和向下),当向左或向上移动时,指针事件似乎没有触发,奇怪。我在某处读过项目(正方形)具有不同的 ZIndex,这可能会影响事件的触发。
我已经为此苦苦挣扎了几个小时,非常感谢一些帮助。