我的Canvas上有一些Rectangle对象,还有一个有Move()方法的Rect。我想这样做,如果我的Rect与Rectangle中的一个相交,则删除该Rectangle。
类似的东西(rct是一个Rect,rctn是一个Rectangle):
if (rct.InterSectsWith(rctn))
{
rctn.Invalidate();
}
我该怎么办?
答案 0 :(得分:0)
我建议使用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坐标。