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; }