我正在使用一个很棒的拖放框架:http://code.google.com/p/gong-wpf-dragdrop/ 我有两个列表框 - A和B。当我从B拖到A时,只要鼠标指针在列表框A区域内,我希望它立即更改。
我已经接近成功了。通过使用IDropTarget接口如下:
void IDropTarget.DragOver(DragOver drag)
{
drag.Effects = DragDropEffects.Copy | DragDropEffects.Move;
// some logic to determine if hovering over listbox A
// ...
if (hoveringOverListA)
{
ListBoxA.Cursor = ((FrameworkElement) Application.Current.Resources["ListboxACursor"]).Cursor;
}
}
唯一的问题是,当我拖动光标时,显示的是不允许操作的光标(黑色带有一条线的圆圈)。只有当我释放鼠标后,才会看到我的ListboxACursor出现。所以这就像是一个延迟反应,就像它在等我放下而不是在我拖动时就完成了。
如果有人能看出代码有什么问题,我将非常感激。我有一种感觉,可能与DragDropEffects有关,但这主要是一种直觉。