我正在设计一个带有枢轴控制的阅读应用程序。当来自第一页时,我想禁用右撇子事件,以便用户只需向左轻拂即可进入下一页。当来自最后一页时,我想禁用左撇子事件。
Silverlight Toolkit中有一个lockablePivot控件,但此控件将禁用所有轻弹事件。有人会给我一些建议。
答案 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的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;
}