如何禁用枢轴轻弹事件?

时间:2012-01-08 04:13:07

标签: windows-phone-7 pivot windows-phone-7.1

我正在设计一个带有枢轴控制的阅读应用程序。当来自第一页时,我想禁用右撇子事件,以便用户只需向左轻拂即可进入下一页。当来自最后一页时,我想禁用左撇子事件。

Silverlight Toolkit中有一个lockablePivot控件,但此控件将禁用所有轻弹事件。有人会给我一些建议。

3 个答案:

答案 0 :(得分:2)

您是否查看过microsoft Silverlight工具包中的LockablePivot控件?

http://www.windowsphonegeek.com/articles/Windows-Phone-Toolkit-LockablePivot-in-depth

答案 1 :(得分:0)

我认为你应该在这里重新考虑你的设计决定。 Metro设计语言说明了枢轴如何工作以及人们习惯于此。改变这种状况会让用户体验更糟糕,因为他们希望你能够在角落里轻弹一下。

答案 2 :(得分:0)

使用像这样的PivotItem违反UI指南,不应该真正实现。然而,为了理论,如果没有别的,你可以做这样的事情。

为您的第一个和最后一个PivotItem命名。

<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;
}