Rect 对象如何能够与 Rectangle 对象相交? (在 WPF、C# 中)

How a Rect object able to intersectwidth Rectangle object? (in WPF, C#)

我的 Canvas 中有一些 Rectangle 对象,还有一个具有 Move() 方法的 Rect。我想这样做,如果我的 Rect 与 Rectangle 之一相交,则该 Rectangle 将被删除。

类似的东西(rct 是一个矩形,rctn 是一个矩形):

if (rct.InterSectsWith(rctn))
   {
     rctn.Invalidate();
   }

我该怎么办?

我建议使用 Rect 的本机 IntersectsWith 函数,并从您的 Rectangle 对象创建一个新的 Rect。

rct.IntersectsWith(new Rect(rctn.Margin.Left, rctn.Margin.Top, rctn.Width, rctn.Height));

这里假定 rctn 是 Canvas 的直接子节点,并且它位于左上角。如果不是,您可以使用 this question 中描述的 TranslatePoint 函数来获取相对于您的 Canvas.

的 x 和 y 坐标