我有一个画布,可以在其中拖放项目。我想对放下事件设置一些限制。例如,如果将项目1放置在画布上,则我希望只有当鼠标指针直接位于项目1上时,项目2才能放置在画布上。
我使用了Mouse.DirectlyOver,但是它返回null。那么,如何在放置事件中直接将鼠标指针悬停在元素上?
注意:我正在使用C#WPF进行编程
谢谢!
答案 0 :(得分:0)
这个答案是理所当然的,因为您正在使用winforms。
您可以实现此目的的一种方法是获取光标的X / Y坐标以检查它是否在item1内。您可以使用DragEventArgs
事件的DragDrop
获取触发事件时的鼠标坐标
private void canvas_DragDrop(object sender, DragEventArgs e)
{
//Get cursor x/y coordinates
int cursorPositionX = e.X;
int cursorPositionY = e.Y;
//Check if it is inside item 1
if (cursorPositionX > item1.Location.X && cursorPositionX < item1.Location.X + item1.Width && cursorPositionY > item1.Location.Y && cursorPositionY < item1.Location.Y + item1.Height)
{
//The mouse is directly above item1
}
}