Как отключить событие pivot flick?
Я проектирую приложение для чтения с управлением сводкой. При переходе с первой страницы я хочу отключить событие щелчка правой кнопкой мыши, чтобы пользователь мог просто щелкнуть влево, чтобы перейти на следующую страницу. При переходе с последней страницы я хочу отключить событие левого флик.
В Silverlight Toolkit есть элемент управления lockablePivot, но этот элемент управления отключит все события flick. Кто-нибудь даст мне несколько советов.
3 ответа
Вы смотрели на элемент управления LockablePivot в наборе инструментов Microsoft Silverlight?
http://www.windowsphonegeek.com/articles/Windows-Phone-Toolkit-LockablePivot-in-depth
Я думаю, что вы должны пересмотреть свое дизайнерское решение здесь. Язык дизайна Metro показывает, как работают стержни, и люди привыкли к этому. Изменение этого параметра ухудшит работу пользователей, так как они ожидают, что вы сможете переключаться в центре.
Такое использование PivotItem идет вразрез с руководством по пользовательскому интерфейсу и не должно быть реализовано. Тем не менее, ради теории, если ничего другого, вы можете сделать что-то вроде этого.
Дайте вашему первому и последнему PivotItem имя.
<controls:PivotItem Header="Item1" Name="first">
...
<controls:PivotItem Header="Item5" Name="last">
Обращайтесь к опоре 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;
}