在 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 的 LoadingPivotItem
和 LoadedPivotItem
事件。然后你可以这样做:
//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;
}
希望这有效..
对于任何查询.. 返回。
我正在制作一个通用应用程序。对于 windows phone 部分,我在其中实现了一个数据透视页。现在,我希望禁用数据透视页面中的滑动手势(用于在不同的数据透视项目中导航),以便仅当第一个数据透视项目上的按钮被点击时,它才会显示第二个数据透视项目。我尝试将 Pivot 控件的 IsHitTestVisible 属性设置为 false,但随后所有 PivotItem 都被阻止。
它违反了 WINDOWS UI 指南,不应该真正实施。
但是,如果没有别的,为了理论,你可以做这样的事情。
假设您有 5 个数据透视项,将第一个和最后一个数据透视项命名为
<controls:PivotItem Header="Item1" Name="first">
...
<controls:PivotItem Header="Item5" Name="last">
处理 Pivot 的 LoadingPivotItem
和 LoadedPivotItem
事件。然后你可以这样做:
//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;
}
希望这有效.. 对于任何查询.. 返回。