我创建了一个新的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/