示例#1
0
        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;
        }
示例#2
0
        /// <summary>
        /// Invoked when the PageTurnedCommand is executed.
        /// </summary>
        /// <param name="e"></param>
        private void OnPageTurned(RoutedEventArgs e)
        {
            PageTurnEventArgs pageFlipEventArgs = e as PageTurnEventArgs;

            EvaluatePageState(pageFlipEventArgs);
        }