private void EvaluatePageState(PageTurnEventArgs e) { if (e == null) { throw new ArgumentNullException("e"); } // Calculate current page if (e.Direction == NavigationDirection.Forward) { this.currentPage = this.bookPages[e.Page.Index + 1]; } else { if (e.Page.Index != 1) { this.currentPage = this.bookPages[e.Page.Index - 2]; } else { this.currentPage = this.bookPages[0]; } } // Set navigation parameters if (this.currentPage.Type == PageType.Interactive) { SelectGameType(this.currentPage); CanNavigateToNextPage = false; IsInteractivePage = true; } else if (this.currentPage.Type == PageType.Soft || this.currentPage.Type == PageType.FrontCover || this.currentPage.Type == PageType.Blank) { CanNavigateToNextPage = true; IsInteractivePage = false; } // Always can go back CanNavigateToPreviousPage = true; }
/// <summary> /// Invoked when the PageTurnedCommand is executed. /// </summary> /// <param name="e"></param> private void OnPageTurned(RoutedEventArgs e) { PageTurnEventArgs pageFlipEventArgs = e as PageTurnEventArgs; EvaluatePageState(pageFlipEventArgs); }