【问题标题】:Prevent scrolling on last item of panorama item or pivot item wp7 c#防止滚动全景项目的最后一项或枢轴项目wp7 c#
【发布时间】:2014-05-08 05:50:04
【问题描述】:

我有 n 个枢轴项。如何停止从最后一项滚动到第一项。任何帮助将不胜感激。

【问题讨论】:

  • How to stop pivot looping 的可能重复项 - 简而言之:不可能
  • @UlugbekUmirov 确实没有“简单”的方法可以做到这一点。但我可以想象一个锁定的 Pivot,您可以在其中通过其他事件(触摸)以编程方式处理更改项目 - 您可以在那里放置任何逻辑。
  • @Romasz 是的,锁定枢轴可以工作。但是 OP 使用的是 WP7。
  • @UlugbekUmirov 你可能是对的 - 这取决于操作系统版本。我现在没有 WP7 模拟器,但根据 MSDN,至少 WP7.1 应该处理该任务(我假设有能力锁定 Pivot - IsHitTestVisivle)。
  • [逻辑代码在这里][1] 请检查这个..希望它会工作.. [1]:stackoverflow.com/a/28184642/3770310

标签: c# xaml windows-phone-7


【解决方案1】:

我不确定这是否可行,因此正如 Ulugbek Umirov 在 cmets 中所说的那样 - 它取决于操作系统版本。我现在没有模拟器可以尝试,但你可以尝试这样做:

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 就不会在小的垂直拖动时被打开,如果需要,这是一个测试问题。

【讨论】:

  • 我正在测试你的代码。就一个问题,myMap是什么?
  • @UlugbekUmirov Heh - 我的旧代码中的一个工件;)感谢您对其进行测试。
  • 它适用于 WP7.1。但我稍微修改了你的代码以适应 OP 的需要。
  • @UlugbekUmirov 感谢您提供信息和编辑,现在我还记得为什么我将其与 0 进行比较 - 在​​某些情况下,可能需要通过小的垂直拖动来禁用切换 - 拖动总是有一些垂直和水平坐标。
猜你喜欢
  • 1970-01-01
  • 2011-06-26
  • 1970-01-01
  • 1970-01-01
  • 2022-10-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多