C# 如何检测屏幕上是否移动了对象?

C# 如何检测屏幕上是否移动了对象?,c#,wpf,C#,Wpf,我正在执行操纵事件,以检查对象(三角形、正方形、平行四边形)的移动,如下教程所示: 但是,我正在处理我自己创建的对象,而渲染转换似乎无法处理这些对象 错误I get:不包含“RenderTransform”的定义,并且找不到接受类型为有形的第一个参数的扩展方法“RenderTransform”(是否缺少using指令或程序集引用?) 我怎样才能让它工作?我需要实现自己的RenderTransform方法吗?但我不明白为什么它不能只处理我自己的对象 我曾尝试使用多边形而不是我自己的对象,但这并不能

我正在执行操纵事件,以检查对象(三角形、正方形、平行四边形)的移动,如下教程所示:

但是,我正在处理我自己创建的对象,而渲染转换似乎无法处理这些对象

错误I get:不包含“RenderTransform”的定义,并且找不到接受类型为有形的第一个参数的扩展方法“RenderTransform”(是否缺少using指令或程序集引用?)

我怎样才能让它工作?我需要实现自己的RenderTransform方法吗?但我不明白为什么它不能只处理我自己的对象

我曾尝试使用多边形而不是我自己的对象,但这并不能解决问题,反而会出现空指针异常,因为我屏幕上的对象实际上是“有形”类型的对象

我的代码:

private void PlayingCanvas_ManipulationDelta(object sender, ManipulationDeltaEventArgs e)
    {
        Tangible polyToMove = e.OriginalSource as Tangible;

        Matrix polysMatrix = ((MatrixTransform)polyToMove.RenderTransform).Matrix; 

        polysMatrix.RotateAt(e.DeltaManipulation.Rotation,
                                 e.ManipulationOrigin.X,
                                 e.ManipulationOrigin.Y);

        polysMatrix.Translate(e.DeltaManipulation.Translation.X,
                                  e.DeltaManipulation.Translation.Y);

        polyToMove.RenderTransform = new MatrixTransform(polysMatrix);
}

您的对象继承自什么?
RenderTransform
属性是在
UIElement
类型上定义的,因此它必须从该元素或其子类(几乎是任何控制类)继承。它从Windows.Shapes的Polygon类继承。但是,当我尝试将多边形作为原始源时,它会抛出空指针异常。您真的确定它继承了
System.Windows.Shapes.Polygon
?该类是密封的,您不能从中派生。您的对象从中继承什么?
RenderTransform
属性是在
UIElement
类型上定义的,因此它必须从该元素或其子类(几乎是任何控制类)继承。它从Windows.Shapes的Polygon类继承。但是,当我尝试将多边形作为原始源时,它会抛出空指针异常。您真的确定它继承了
System.Windows.Shapes.Polygon
?该类是密封的,不能从中派生。