我有n个透视项目。如何停止从上一个项目滚动到第一个项目。任何帮助将不胜感激。
答案 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就无法启用小型垂直拖动,如果需要的话,这是一个测试问题。