示例#1
0
        private void DynamicViewHost_OnSetAsCurrentView(DynamicViewBase dynamicView, NavigationDirections navigationDirection)
        {
            _newView          = dynamicView;
            _newViewDirection = navigationDirection;

            CurrentDynamicView.OnFadeOutComplete -= _currentDynamicView_OnFadeOutComplete;

            _currentDynamicView_OnFadeOutComplete = () =>
            {
                var oldDV = CurrentDynamicView.GetHashCode();
                var newDV = dynamicView.GetHashCode();

                dynamicView.SetDirection(navigationDirection);
                CurrentDynamicView = dynamicView;

                if (oldDV == newDV)
                {
                    CurrentDynamicView.FadeIn();
                }
            };


            CurrentDynamicView.OnFadeOutComplete += _currentDynamicView_OnFadeOutComplete;
            //CurrentDynamicView.OnFadeOutComplete += CurrentDynamicView_OnFadeOutComplete;

            CurrentDynamicView.SetDirection(navigationDirection);

            CurrentDynamicView.FadeOut();
        }
示例#2
0
        private void CurrentDynamicView_OnFadeOutComplete()
        {
            var oldDV = CurrentDynamicView.GetHashCode();

            _newView.SetDirection(_newViewDirection);
            CurrentDynamicView.OnFadeOutComplete -= CurrentDynamicView_OnFadeOutComplete;
            CurrentDynamicView = _newView;

            if (oldDV == _newView.GetHashCode())
            {
                CurrentDynamicView.FadeIn();
            }

            _newView = null;
        }