Esempio n. 1
0
        void OnParallaxScrollScrolled(object sender, ScrolledEventArgs e)
        {
            double translation = 0;

            if (lastScroll == 0)
            {
                lastScroll = e.ScrollY;
            }

            if (lastScroll < e.ScrollY)
            {
                translation = 0 - ((e.ScrollY / parallaxSpeed));

                if (translation > 0)
                {
                    translation = 0;
                }
            }
            else
            {
                translation = 0 + ((e.ScrollY / parallaxSpeed));

                if (translation > 0)
                {
                    translation = 0;
                }
            }

            SubHeaderView.FadeTo(translation < -40 ? 0 : 1);

            lastScroll = e.ScrollY;
        }
        /// <summary>
        /// Когда параллакс скролл скроллится
        /// </summary>
        private void OnParallaxScrollScrolled(object sender, ScrolledEventArgs e)
        {
            double translation;

            // Если скролла не было, то сохраняем текущий
            if (_lastScroll == 0)
            {
                _lastScroll = e.ScrollY;
            }

            // Если последний скролл оказался больше текущего
            if (_lastScroll < e.ScrollY)
            {
                translation = 0 - ((e.ScrollY / ParallaxSpeed));

                if (translation > 0)
                {
                    translation = 0;
                }
            }
            else
            {
                translation = 0 + ((e.ScrollY / ParallaxSpeed));

                if (translation > 0)
                {
                    translation = 0;
                }
            }

            // Вызываем "затухание". Это и есть параллакс эффект
            SubHeaderView.FadeTo(translation < -40 ? 0 : 1);

            // Сохраняем последний скролл
            _lastScroll = e.ScrollY;
        }