コード例 #1
0
        void OnCurrentPageChanged()
        {
            // To update TabIndex order
            CustomFocusManager.StartReorderTabIndex();

            if (_isUpdateByScroller || _isUpdateByToolbar || !_isInitialized)
            {
                return;
            }

            _isUpdateByCurrentPage = true;
            Page oldPage = null;

            if (_toolbar.SelectedItem != null && _itemToItemPage.ContainsKey(_toolbar.SelectedItem))
            {
                oldPage = _itemToItemPage[_toolbar.SelectedItem];
            }

            oldPage?.SendDisappearing();
            Element.CurrentPage?.SendAppearing();

            int index = MultiPage <Page> .GetIndex(Element.CurrentPage);

            _toolbarItemList[index].IsSelected = true;
            _scroller.ScrollTo(index, 0, true);

            Element.UpdateFocusTreePolicy();
            _isUpdateByCurrentPage = false;
        }
コード例 #2
0
        void UpdateIsPresented()
        {
            // To update TabIndex order
            CustomFocusManager.StartReorderTabIndex();

            _flyoutPage.IsPresented = Element.IsPresented;
        }
コード例 #3
0
        void OnCurrentPageChanged(object sender, EventArgs e)
        {
            CustomFocusManager.StartReorderTabIndex();

            Element.UpdateFocusTreePolicy();

            if (IsChangedByScroll())
            {
                return;
            }

            if (Element.CurrentPage != Element.Children[_pageIndex])
            {
                var previousPageIndex = _pageIndex;
                _pageIndex = Element.Children.IndexOf(Element.CurrentPage);
                if (previousPageIndex != _pageIndex)
                {
                    (Element.Children[previousPageIndex] as IPageController)?.SendDisappearing();
                    _scroller.ScrollTo(_pageIndex, 0, false);
                    (Element.CurrentPage as IPageController)?.SendAppearing();
                    OnSelect(_pageIndex);
                }
            }
        }