覆盖PivotItem上的操作事件

时间:2016-05-30 09:49:43

标签: uwp pivotitem

我有一个UWP应用程序,我正在使用带有一组枢轴项的枢轴控件。现在,我的要求是捕获枢轴项目上的向下/向上滑动手势。我做了类似下面的事情:

 var reminder = GetReminder(reminderName);       
  if (reminder != null)                           
  {                                               
      // do something with it...    
  }         

问题是,当我这样做时,它会覆盖枢轴控制的行为,现在我无法向左/向右滑动来更改枢轴项目。

我能做些什么来同时实现这两个目标吗?

1 个答案:

答案 0 :(得分:1)

正如我们已经讨论的那样,我们可以使用指针事件来完成这项工作,但在这种情况下只有部分工作在移动设备上工作(在PC上他们工作正常,你可以尝试一下)。

这是我的样本:

<Grid x:Name="rootGrid" Background="White" PointerPressed="Grid_PointerEntered"
      PointerEntered="Grid_PointerEntered" PointerMoved="Grid_PointerMoved">
    <Pivot x:Name="pivot">
        <PivotItem Header="jdslj">
            <TextBlock Name="textBlock" />
        </PivotItem>
        <PivotItem Header="weew">
        </PivotItem>
        <PivotItem Header="332">
        </PivotItem>
    </Pivot>
</Grid>
代码背后的代码:

private double Y;
private double deltaY;

private void Grid_PointerEntered(object sender, PointerRoutedEventArgs e)
{
    var pointer = e.GetCurrentPoint(rootGrid);
    Y = pointer.Position.Y;
}

private void Grid_PointerMoved(object sender, PointerRoutedEventArgs e)
{
    var pointer = e.GetCurrentPoint(rootGrid);
    deltaY = pointer.Position.Y;
    if ((deltaY - Y) > 30)
    {
        textBlock.Text = "down";
        Y = 0;
        deltaY = 0;
    }
    else if ((Y - deltaY) > 30)
    {
        textBlock.Text = "up";
        Y = 0;
        deltaY = 0;
    }
}

由于您要求提供样本,我发布了这个答案,但我想再说一遍,我的样本有效,但不是很敏感。