';System.Windows.Rect';不包含';十字路口';对于C#

本文关键字:十字路口 包含 对于 Rect System Windows | 更新日期: 2023-09-27 18:20:52

我正在使用Microsoft Visual Studio 2012对Windows Phone 8的Windows Phone应用程序进行冲突。我用Rect为球做了一个矩形边界。我收到了这个错误。"System.Windows.Rect不包含"Intersects"的定义,也找不到接受类型为"System.Windows.Rct"的第一个参数的扩展方法"Intersect"(是否缺少using指令或程序集引用?)代码如下。

var greenBallPositionX1 = Canvas.GetLeft(this.greenBall1);
var greenBallPositionY1 = Canvas.GetTop(this.greenBall1);
Rect r1 = new Rect(greenBallPositionX1, greenBallPositionY1, greenBall1.ActualWidth, greenBall1.ActualHeight);
var blueBallPositionX1 = Canvas.GetLeft(this.blueBall1);
var blueBallPositionY1 = Canvas.GetTop(this.blueBall1);
Rect r2 = new Rect(blueBallPositionX1, blueBallPositionY1, blueBall1.ActualWidth, blueBall1.ActualHeight);
if (r1.Intersects(r2))
        {
            MessageBox.Show("Collision Detected");
        }

';System.Windows.Rect';不包含';十字路口';对于C#

您自己的交集可以写成

public bool Intersects(Rect r1,Rect r2)
{
  r1.Intersect(r2);
  if(r1.IsEmpty)
  {
    return false;
  }
  else 
  {
    return true;
  }
}

然后你可以使用

if(Intersects(r1,r2))
{
  MessageBox.Show("Collison Detected");
}

语法为:

Rect.Intersect(Rect)

丢掉"s"!

http://msdn.microsoft.com/en-us/library/ms558125.aspx