Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 重新定义类以添加新功能或找到解决方法_C#_Wpf_Kinect - Fatal编程技术网

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

C# 重新定义类以添加新功能或找到解决方法,c#,wpf,kinect,C#,Wpf,Kinect,我想重新定义核心wpf API(UIElement)的一个类,我不想继承一个类 在MS Kinect上的一个项目中,我用用户的手重新实现了光标映射。我已经实现了类似于鼠标引发的事件(输入一个元素,留下一个元素…)。我希望从UIElement继承的所有元素都能获得一些附加属性: KinectCursorEnter, KinectCursorMove... public bool IsKinectLeftCursorOver { get; set; } public bool

我想重新定义核心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; }
        ...
以及一些属性:

  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
    ,但我无法对某些
    密封的类(矩形、椭圆…)执行该操作
我想在几个月(几年?)后,MSFT将在WPFAPI中实现这些属性和方法。但现在我需要一个办法


PS:我不想用用户的一只手来控制鼠标。有一个鼠标,我想要两个光标。我有一些事件,比如:KinectLeftCursorEnter、KinectRightCursorEnter等等。

你可以用来扩展这个类。

你可以用来扩展这个类。

我看了一下扩展,问题是:当调用这个类的构造函数时,我想给事件添加处理程序:this.KinectCursorEnter+=new KinectCursorEventHandler(OnKinectCursorEnter);和相应的处理程序。我不想在另一个方法中使用这样的功能,因为我只想将我的控件放在我的wpf页面上,并使其正常工作。我认为您除了从类继承之外别无选择。如果我认为我将保留我的接口并继承我需要的可视元素。我找到了一种处理KinectionElement的方法d同时在KinectCursorManager级别执行非Kinecutilement。我打开这个问题,看看是否还有其他答案。无论如何@Asif谢谢你的回答,我会在我有足够的声誉后立即更新你的答案(在这种情况下,扩展大部分时间都有效).我已经查看了扩展,问题是:调用类的构造函数时,我想向事件添加处理程序:this.KinectCursorEnter+=新的KinectCursorEventHandler(OnKinectCursorEnter);和相应的处理程序。我不想在另一个方法中使用这样的功能,因为我只想将我的控件放在我的wpf页面上,并使其正常工作。我认为您除了从类继承之外别无选择。如果我认为我将保留我的接口并继承我需要的可视元素。我找到了一种处理KinectionElement的方法d同时在KinectCursorManager级别执行非Kinecutilement。我打开这个问题,看看是否还有其他答案。无论如何@Asif谢谢你的回答,我会在我有足够的声誉后尽快更新你的答案(在这种情况下,扩展大部分时间都有效)。