防止在全景项目或枢轴项目的最后一项上滚动wp7 c#

时间:2014-05-08 05:50:04

标签: c# xaml windows-phone-7

我有n个透视项目。如何停止从上一个项目滚动到第一个项目。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

我不确定这是否有效,因此正如Ulugbek Umirov在评论中所说 - 它依赖于操作系统版本。我现在没有模拟器尝试,但你可能会尝试这样做:

public MainPage()
{
   InitializeComponent();
   myPivot.IsHitTestVisible = false; // disable your Pivot
   Touch.FrameReported += Touch_FrameReported;
   TouchPanel.EnabledGestures = GestureType.HorizontalDrag; 
}

TouchPoint first;
private const int detectRightGesture = 20;

private void Touch_FrameReported(object sender, TouchFrameEventArgs e)
{
    TouchPoint mainTouch = e.GetPrimaryTouchPoint(this);
    if (mainTouch.Action == TouchAction.Down)
        first = mainTouch;
    else if (mainTouch.Action == TouchAction.Up && TouchPanel.IsGestureAvailable)
    {
        if (mainTouch.Position.X - first.Position.X < -detectRightGesture)
        {
            if (myPivot.SelectedIndex < myPivot.Items.Count - 1)
                myPivot.SelectedIndex++;
        }
        else if (mainTouch.Position.X - first.Position.X > detectRightGesture)
        {
            if (myPivot.SelectedIndex > 0)
                myPivot.SelectedIndex--;
        }
    }
}

根据MSDN - TouchPanel,可以从WP7.1获得,Touch.FrameReported Event应该可以在WP7.0上获得。因此它有可能发挥作用。

您必须添加对Microsoft.Xna.Framework.Input.Touch程序集的引用。

我还添加了detectRightGesture,这样Pivot就无法启用小型垂直拖动,如果需要的话,这是一个测试问题。