C# 如何在Windows窗体C上触发UIElement.TouchDown事件在触摸屏上,Windows 8

C# 如何在Windows窗体C上触发UIElement.TouchDown事件在触摸屏上,Windows 8,c#,winforms,events,C#,Winforms,Events,这需要是Windows窗体(winforms)-而不是WPF。问题在于windows 8的触摸屏上的单鼠标向下事件未正确触发。鼠标在触摸并移动手指或单击后向下发射-鼠标在你离开手指后立即发射。我想在触摸屏幕后,像普通鼠标一样启动它。解决这个问题的办法就是触地得分。但是,我就是无法处理这件事。我所做的是创建类多点触摸,如下所示: class Moultitouch : UIElement { public Moultitouch() { this.TouchDown

这需要是Windows窗体(winforms)-而不是WPF。问题在于windows 8的触摸屏上的单鼠标向下事件未正确触发。鼠标在触摸并移动手指或单击后向下发射-鼠标在你离开手指后立即发射。我想在触摸屏幕后,像普通鼠标一样启动它。解决这个问题的办法就是触地得分。但是,我就是无法处理这件事。我所做的是创建类多点触摸,如下所示:

class Moultitouch : UIElement
{
    public Moultitouch()
    {
        this.TouchDown += new EventHandler<System.Windows.Input.TouchEventArgs>(Moultitouch_TouchDown);
    }

    void Moultitouch_TouchDown(object sender, System.Windows.Input.TouchEventArgs e)
    {
        //it never goes in
    }

    protected override void OnTouchDown(System.Windows.Input.TouchEventArgs e)
    {
        base.OnTouchDown(e);
    }
}
class Moultitouch:UIElement
{
公共摩托接触
{
this.TouchDown+=新事件处理程序(moultitou-TouchDown);
}
无效Moultitouch_触地(对象发送器,System.Windows.Input.TouchEventArgs e)
{
//它从不进去
}
受保护的覆盖无效OnTouchDown(System.Windows.Input.TouchEventArgs e)
{
基部。上止点(e);
}
}

之后,我将在我的组件中声明一个类,该类在Touch上应该处理该事件。我在这方面做了很多研究,一直都在尝试,到目前为止什么都没有。我认为“在Windows窗体中托管WPF复合控件”可以解决我的问题,但这个解决方案可能非常漫长和艰难。非常感谢您的帮助或想法。

您的问题是触摸屏触发事件和鼠标触发事件不是一回事。例如,Winform按钮可以通过处理onMouseCenter和OnMouseLeave来切换其背景颜色。将其编码到表单上,并在按钮上来回运行光标,一切正常。使用触摸屏,用同样的方式用手指触摸屏幕,直到您松开与屏幕的接触,然后引发单击事件,才会发生任何事情。这不是你想要的答案,但我为一位残疾朋友开发的屏幕键盘也有同样的问题。我的研究将我引向这里,特别是提供操纵开始和操纵结束事件细节的链接。希望这对我有所帮助,这对我正在努力实现的目标有帮助

我不知道你在说什么。你的问题是什么?对,用更简单的方式。我认为我们可以将这个问题简化为一个简单的winform,只需一个按钮。我想通过在触摸屏上触摸UIElement.TouchDown来处理它。我该怎么做?也许现在你会理解我之前所说的更多。winforms中没有
UIElement
这样的东西。我不知道你在说什么。