我正在编写一个设计师,可以让用户拖动控件在屏幕上移动。 在我拖动一个控件时,检测另一个控件是否与之重叠的最佳方法是什么? 我应该只是获取 FrameworkElement 的尺寸,并继续检查其他元素的尺寸吗? 谢谢。 Eli
您的元素的尺寸(FrameworkElement.ActualWidth FrameworkElement.ActualHeight)和位置(Canvas.Top,Canvas.Bottom,Canvas.Left,Canvas.Right)足以满足它们始终为矩形的情况。在这种情况下,您可以轻松计算两个矩形是否重叠。如果您的元素可以是更复杂的形状,则会变得棘手。我不知道是否可以在WPF中测试两个Visual实例的交集。也许我们可以使用hittesting?通过这种方法,您至少可以测试某个点或几何图形是否与某个视觉相交。因此,您需要定义一个几何图形或一组点,这些几何图形或点的边界与第二个视觉的边界更多或少地匹配。