我想重新定义一个核心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
已经实现了诸如...之类的东西MouseEnter
)StylusEnter
。Kinect 与其他任何输入设备(鼠标、触控笔、键盘......)一样是一种输入设备
我试过了:
- 要继承 UIElement 并添加功能,但我必须重新实现所有类。
我看了一下:
- 如果有像 Ruby 的开放课程这样的东西
- 如果我可以使用扩展名(链接)
- 如果我可以以任何方式使用适配器模式
到目前为止,我正在使用:
- 一个接口,我重新定义了所有元素:我有一个
KinectButton
继承自Button
并实现的接口,IKinectInputElement
但我不能为某些类sealed
(矩形,椭圆......)
我想我几个月(几年?)MSFT 将在 Wpf API 中实现那些属性和方法。但现在我需要一个方法。
PS:我不想用用户的一只手来控制鼠标。有一只鼠标,我想要两个光标。我有诸如:KinectLeftCursorEnter、KinectRightCursorEnter 等事件。