Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 如何检测跌落,无论跌落发生在何处?_Wpf_Vb.net - Fatal编程技术网

Wpf 如何检测跌落,无论跌落发生在何处?

Wpf 如何检测跌落,无论跌落发生在何处?,wpf,vb.net,Wpf,Vb.net,我正在创建一个具有拖放功能的WPF应用程序 当开始拖动时,我的窗口中矩形的颜色将从白色变为绿色或红色,以指示哪些矩形是有效的拖放目标 每当执行拖放时,我希望将矩形的颜色恢复为白色,而不管拖放发生在何处 我已经设法恢复颜色时,下降发生在下降的目标。但现在我找不到一种方法来做同样的事情,当下降是在其他地方进行 我尝试过这样的事情,但运气不好: Private Sub Meh(sender As Object, e As QueryContinueDragEventArgs) Handles Drag

我正在创建一个具有拖放功能的WPF应用程序

当开始拖动时,我的窗口中矩形的颜色将从白色变为绿色或红色,以指示哪些矩形是有效的拖放目标

每当执行拖放时,我希望将矩形的颜色恢复为白色,而不管拖放发生在何处

我已经设法恢复颜色时,下降发生在下降的目标。但现在我找不到一种方法来做同样的事情,当下降是在其他地方进行

我尝试过这样的事情,但运气不好:

Private Sub Meh(sender As Object, e As QueryContinueDragEventArgs) Handles DragSource.QueryContinueDrag()
    If e.Action = DragAction.Cancel Or e.Action = DragAction.Drop Then
        For Each R as Rectangle In Rectangles.Children
            R.Fill = Brushes.White
        Next
    End If
End Sub
我甚至做了一个窗口MouseUp事件的处理程序来完成它。还是不行


有人能帮我吗?

不要使用事件,只需在DoDragDrop()调用后恢复即可。另外请注意,此方法会告诉您是否在返回值中实际发生了拖放。这是不合适的,因为调用后颜色会更改为绿色/红色。我希望只有当鼠标按钮被释放时,它们才会被恢复。