我有一个UWP应用程序,我正在使用带有一组枢轴项的枢轴控件。现在,我的要求是捕获枢轴项目上的向下/向上滑动手势。我做了类似下面的事情:
var reminder = GetReminder(reminderName);
if (reminder != null)
{
// do something with it...
}
问题是,当我这样做时,它会覆盖枢轴控制的行为,现在我无法向左/向右滑动来更改枢轴项目。
我能做些什么来同时实现这两个目标吗?
答案 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;
}
}
由于您要求提供样本,我发布了这个答案,但我想再说一遍,我的样本有效,但不是很敏感。