在 Windows Phone 8.1 枢轴控件中禁用滑动手势

Disabling swipe gesture in Windows Phone 8.1 pivot control

我正在制作一个通用应用程序。对于 windows phone 部分,我在其中实现了一个数据透视页。现在,我希望禁用数据透视页面中的滑动手势(用于在不同的数据透视项目中导航),以便仅当第一个数据透视项目上的按钮被点击时,它才会显示第二个数据透视项目。我尝试将 Pivot 控件的 IsHitTestVisible 属性设置为 false,但随后所有 PivotItem 都被阻止。

它违反了 WINDOWS UI 指南,不应该真正实施。

但是,如果没有别的,为了理论,你可以做这样的事情。

假设您有 5 个数据透视项,将第一个和最后一个数据透视项命名为

<controls:PivotItem Header="Item1" Name="first">
...

 <controls:PivotItem Header="Item5" Name="last">

处理 Pivot 的 LoadingPivotItemLoadedPivotItem 事件。然后你可以这样做:

//class level variable we use for the current pivot
PivotItem currentItem = null;

private void Pivot_LoadingPivotItem(object sender, PivotItemEventArgs e)
{
//if the next item is going to be "first" pivot
//and the previous item was the "last" pivot...
if (e.Item == first && currentItem == last)
{
  //...reset the Pivot back to the last one.
   mainPivot.SelectedItem = last;
}

//same theory as above but checking if we're 
//sliding to the last one from the first one
if (e.Item == last && currentItem == first)
{
   mainPivot.SelectedItem = first;
}
}

private void mainPivot_LoadedPivotItem(object sender, PivotItemEventArgs e)
{
 //once the pivot is loaded, update the currentItem
 currentItem = e.Item;
}

希望这有效.. 对于任何查询.. 返回。