防止滚动的最后一项的全景项目或枢纽项目wp7c#

本文关键字:项目 wp7c# 全景 一项 滚动 最后 | 更新日期: 2023-09-27 18:02:12

我有n个数据透视项。如何停止滚动从最后到第一个项目。

防止滚动的最后一项的全景项目或枢纽项目wp7c#

我不确定这是否有效,因此正如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。在WP7.0上应该可以使用FrameReported Event。因此,它有可能工作。

您必须添加对Microsoft.Xna.Framework.Input.Touch汇编的引用。

我还添加了detectRightGesture,这样枢轴就不会在小的垂直拖动上切换,如果需要的话,这是一个测试问题。