C# XNA手势的问题

C# XNA手势的问题,c#,windows-phone-8,xna,C#,Windows Phone 8,Xna,我的XNA手势不起作用。我正在尝试创建一个天气应用程序,当刷起来的时候,它会拉起一个7天的天气预报,当刷下来的时候,它会拉走。左/右手势用于切换页面。我做错了什么?我的应用程序在测试时会感到困惑,有时会认为每个手势都是左/右手势,或者根本没有手势。为什么它检测不到我的向上/向下手势,为什么左/右手势如此不准确 注意:GestureText.Text仅用于调试 public MainPage() { InitializeComponent(); TouchPanel.Enabled

我的XNA手势不起作用。我正在尝试创建一个天气应用程序,当刷起来的时候,它会拉起一个7天的天气预报,当刷下来的时候,它会拉走。左/右手势用于切换页面。我做错了什么?我的应用程序在测试时会感到困惑,有时会认为每个手势都是左/右手势,或者根本没有手势。为什么它检测不到我的向上/向下手势,为什么左/右手势如此不准确

注意:
GestureText.Text
仅用于调试

public MainPage()
{
    InitializeComponent();
    TouchPanel.EnabledGestures = GestureType.VerticalDrag | GestureType.HorizontalDrag;
}

private void gestures(object sender, ManipulationCompletedEventArgs e)
{
    while (TouchPanel.IsGestureAvailable)
    {
        GestureSample gesture = TouchPanel.ReadGesture();
        switch (gesture.GestureType)
        {
            case GestureType.HorizontalDrag:
                float a = gesture.Delta.X;
                int b = (int)a;
                if (b > 0)
                {
                    gestureText.Text = "Left";
                }
                if (b < 0)
                {
                    gestureText.Text = "Right";
                }
                break;
            case GestureType.VerticalDrag:
                float c = gesture.Delta.X;
                int d = (int)c;
                if (d > 0)
                {
                    gestureText.Text = "Up";
                }
                if (d < 0)
                {
                    gestureText.Text = "Down";
                }
            break;
        }
    }
public主页()
{
初始化组件();
TouchPanel.EnabledGestures=GestureType.VerticalDrag | GestureType.HorizontalDrag;
}
私有无效手势(对象发送者,操纵完成事件参数)
{
while(TouchPanel.IsGestureAvailable)
{
GestureSample手势=TouchPanel.Read手势();
开关(手势.手势类型)
{
案例GestureType.HorizontalDrag:
浮点a=手势.Delta.X;
int b=(int)a;
如果(b>0)
{
Text=“Left”;
}
if(b<0)
{
gestureText.Text=“右”;
}
打破
案例GestureType.VerticalDrag:
float c=手势Delta.X;
int d=(int)c;
如果(d>0)
{
gestureText.Text=“向上”;
}
if(d<0)
{
gestureText.Text=“向下”;
}
打破
}
}

我的建议是完全避免使用
手势。这些手势有太多问题,解决这个问题的最好方法是使用编写自己的手势。你的上/下手势没有引起注意,因为你在使用
手势.Delta.X
而你本应该使用
手势.Delta.Y
垂直拖动
手势检测不到水平变化


此外,向上/向下检测的条件应与向量2相反。零位于左上角

您是否尝试删除水平拖动
,并查看您的游戏是否检测垂直拖动?按照下面的建议编写了我自己的手势。工作很好,问题解决了。