如何在Silverlight的cs代码中为控件添加GestureListener处理程序?

max*_*max 9 c# silverlight event-handling windows-phone-7

我不明白如何在Silverlight中的cs代码中使用Windows Phone Toolkit中的一些功能(更准确地说,我不明白如何使用GestureListener).我看到很多在xaml中使用GestureListener的例子

<Image Source="something.jpg">
    <toolkit:GestureService.GestureListener>
        <toolkit:GestureListener Tap="image_Tap" Hold="image_Hold" />
    </toolkit:GestureService.GestureListener>
</Image>
Run Code Online (Sandbox Code Playgroud)

这工作正常,但我动态创建图像,并希望在cs代码中动态添加手势处理程序.有人可以举例说明如何在cs代码中做同样的事情吗?

小智 12

不推荐使用SetGestureListener,这是正确的,你可以像这样使用GetGestureListener

var gl = GestureService.GetGestureListener(img);
gl.DoubleTap += new EventHandler<GestureEventArgs>(GestureListenerDoubleTap);
Run Code Online (Sandbox Code Playgroud)


Jos*_*osh 1

附加属性通常具有与上述 XAML 相对应的SetPropertyNameGetPropertyName方法对。我没有具体使用 Windows Phone 7 的经验,但上面的操作可能会如下所示:

GestureService.SetGestureListener(myImage, new GestureListener {
    Tap = "image_Tap",
    Hold = "image_Hold"
});
Run Code Online (Sandbox Code Playgroud)

如果这些TapHold属性是图像,您将需要以编程方式加载一些 BitmapImage 对象而不是字符串。