C# 重新定义类以添加新功能或找到解决方法
我想重新定义核心wpf API(UIElement)的一个类,我不想继承一个类 在MS Kinect上的一个项目中,我用用户的手重新实现了光标映射。我已经实现了类似于鼠标引发的事件(输入一个元素,留下一个元素…)。我希望从UIElement继承的所有元素都能获得一些附加属性:C# 重新定义类以添加新功能或找到解决方法,c#,wpf,kinect,C#,Wpf,Kinect,我想重新定义核心wpf API(UIElement)的一个类,我不想继承一个类 在MS Kinect上的一个项目中,我用用户的手重新实现了光标映射。我已经实现了类似于鼠标引发的事件(输入一个元素,留下一个元素…)。我希望从UIElement继承的所有元素都能获得一些附加属性: KinectCursorEnter, KinectCursorMove... public bool IsKinectLeftCursorOver { get; set; } public bool
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; }
...
以及一些属性:
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; }
...
我知道如果我改变这样一个类,有很多方法会把事情弄得一团糟,但在这个层次上,我想添加thoses属性。(UIElement
已经实现了MouseEnter
,StylusEnter
…)等功能。Kinect与其他任何设备(鼠标、手写笔、键盘等)一样,都是一种输入设备
我试过:
- 继承UIElement并添加特性,但我必须 重新实现所有类
- 如果有Ruby的开放类这样的东西
- 如果我可以使用扩展名()
- 如果我能以任何方式使用适配器模式
- 一个界面,我重新定义了所有元素:我有一个
继承自kinect按钮
并实现按钮
,但我无法对某些IKinectInputElement
密封的类(矩形、椭圆…)执行该操作
PS:我不想用用户的一只手来控制鼠标。有一个鼠标,我想要两个光标。我有一些事件,比如:KinectLeftCursorEnter、KinectRightCursorEnter等等。你可以用来扩展这个类。你可以用来扩展这个类。我看了一下扩展,问题是:当调用这个类的构造函数时,我想给事件添加处理程序:this.KinectCursorEnter+=new KinectCursorEventHandler(OnKinectCursorEnter);和相应的处理程序。我不想在另一个方法中使用这样的功能,因为我只想将我的控件放在我的wpf页面上,并使其正常工作。我认为您除了从类继承之外别无选择。如果我认为我将保留我的接口并继承我需要的可视元素。我找到了一种处理KinectionElement的方法d同时在KinectCursorManager级别执行非Kinecutilement。我打开这个问题,看看是否还有其他答案。无论如何@Asif谢谢你的回答,我会在我有足够的声誉后立即更新你的答案(在这种情况下,扩展大部分时间都有效).我已经查看了扩展,问题是:调用类的构造函数时,我想向事件添加处理程序:this.KinectCursorEnter+=新的KinectCursorEventHandler(OnKinectCursorEnter);和相应的处理程序。我不想在另一个方法中使用这样的功能,因为我只想将我的控件放在我的wpf页面上,并使其正常工作。我认为您除了从类继承之外别无选择。如果我认为我将保留我的接口并继承我需要的可视元素。我找到了一种处理KinectionElement的方法d同时在KinectCursorManager级别执行非Kinecutilement。我打开这个问题,看看是否还有其他答案。无论如何@Asif谢谢你的回答,我会在我有足够的声誉后尽快更新你的答案(在这种情况下,扩展大部分时间都有效)。