在ViewModel中处理手势

时间:2011-03-31 01:47:00

标签: windows-phone-7 mvvm-light

我一直在网上搜索有关如何使用MVVM Light在ViewModel中处理Windows Phone 7上的轻弹手势的示例。

我已经找到了一些很好的资源来处理按钮点击等命令,但我似乎找不到任何关于如何处理手势的信息。任何人都知道这是否可行?如果有的话,是否有任何好的资源或者你能提供一个快速的例子来说明如何做到这一点?

如果没有,我想我只需要分解并将代码放入代码隐藏中。呃,让我厌倦了。 ;)

2 个答案:

答案 0 :(得分:3)

您可以使用Wp7Tools中的GestureListenerEx。

将Wp7Tools添加到您的项目中:

PM> install-package wp7tools

在你的xaml中:

<Rectangle Fill="Red" Width="100" Height="100">
    <toolkit:GestureService.GestureListener>
        <wp7:GestureListenerEx 
            OnTapAction="Tap"
            OnDragStartedAction="DragStart"
            OnDragCompletedAction="DragEnd"
            />
    </toolkit:GestureService.GestureListener>
</Rectangle>

在你的ViewModel中:

public void Tap(GestureEventArgs e) {
    //Do something
}

public void DragStart(DragStartedGestureEventArgs e) {
    Debug.WriteLine(e.Direction);
}

public void DragEnd(DragCompletedGestureEventArgs e) {
    Debug.WriteLine(e.Direction);           
}

就是这样。没有代码隐藏,没有命令,只需指向您想要执行的方法:)

答案 1 :(得分:0)

如何制作要将手势应用于用户控件的控件集?

甚至围绕手势监听器包裹用户控件,然后使用依赖属性表面属性,以便绑定到它们