我创建了一个新的UIElement,它派生自Systen.Windows.Controls.Canvas。

我正在尝试处理在此对象上产生的轻拂。

一切都使用Silverlight Phone Toolkit(我想以7.0为目标的2月版本)在C#中以代码(无XAML)完成。

在我的对象构造函数中,我这样做:

        //Create gesture handling
        gl = GestureService.GetGestureListener(this);
        gl.Flick += new EventHandler<FlickGestureEventArgs>(gl_Flick);


gl_Flick很简单:

    void gl_Flick(object sender, FlickGestureEventArgs e)
    {
        if (e.HorizontalVelocity >= 0)
        {
            // Right swipe (flick)
            if (gotSwipe != null)
            {
                gotSwipe(this, e);
            }
        }
    }


现在,在构造函数中,我还创建并添加了一些TextBlocks

出于某种原因,轻拂仅在通过那些TextBocks之一完成时才生成事件。如果我在“画布”的任何空白区域上轻拂,则不会发生任何事情。
由于我找不到与Silverlight工具包相关的任何文档,因此一切都是通过试验和错误完成的。

我该怎么办,这样轻拂在画布上的任何地方执行时都会被识别出来,而不仅限于在其中包含的子对象上?

最佳答案

我更专注于WPF,但是您谈论它的方式使我想起了经典的null背景问题。

解决方案:为画布设置非空背景。

编辑:类似的东西

myCanvas.Background = new SolidColorBrush(Color.FromArgb(1, 0, 0, 1));

关于c# - 处理物体上的轻弹,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7859268/

10-10 18:10