重新定义一个类以添加新功能或找到解决方法

时间:2012-06-06 07:48:31

标签: c# wpf kinect

我想重新定义一个核心wpf API(UIElement)的类,我不想继承一个类。

在MS Kinect上有一个项目,我重新实现了用用户骨架手绘制的游标。我已经实现了类似于鼠标引发的事件(输入元素,留下元素......)。我希望从UIElement继承的所有元素都能获得一些附加属性:

  KinectCursorEnter, KinectCursorMove...

和一些属性:

    public bool IsKinectLeftCursorOver { get; set; }
    public bool IsKinectLeftCursorDirectlyOver { get; set; }
    public bool IsKinectRightCursorOver { get; set; }
    public bool IsKinectRightCursorDirectlyOver { get; set; }
    public bool IsKinectLeftCursorCaptured { get; set; }
        ...

我知道如果我改变这样一个类,有很多方法可以解决问题,但是我想在这个级别添加属性。 (UIElement已经实现了MouseEnterStylusEnter ......等内容。 Kinect是任何其他输入设备(鼠标,手写笔,键盘......)

我试过了:

  • 要继承UIElement并添加功能,但我必须这样做 重新实现所有课程。

我看一看:

  • 如果有像Ruby的开放课程这样的东西
  • 如果我可以使用扩展名(link
  • 如果我可以以任何方式使用适配器模式

到目前为止,我正在使用:

  • 一个界面,我重新定义了所有元素:我有一个KinectButton 继承自Button并实现IKinectInputElement但我不能为某些类sealed(矩形,椭圆...)

我的事情我几个月(几年?)MSFT将在Wpf API中实现那些属性和方法。但是现在我需要一个方法。

PS:我不想用用户的一只手控制鼠标。有一只老鼠,我想要两个游标。我有以下活动:KinectLeftCursorEnter,KinectRightCursorEnter等等。

1 个答案:

答案 0 :(得分:4)

您可以使用Extension Methods扩展课程。