private void Page_Loaded(object sender, RoutedEventArgs e) { Compositor compositor = ElementCompositionPreview.GetElementVisual(this).Compositor; // Get scrollviewer ScrollViewer myScrollViewer = ThumbnailList.GetFirstDescendantOfType <ScrollViewer>(); _scrollProperties = ElementCompositionPreview.GetScrollViewerManipulationPropertySet(myScrollViewer); // Setup the expression var scrollPropSet = _scrollProperties.GetSpecializedReference <ManipulationPropertySetReferenceNode>(); var startOffset = ExpressionValues.Constant.CreateConstantScalar("startOffset", 0.0f); var parallaxValue = 0.5f; var parallax = (scrollPropSet.Translation.Y + startOffset); _parallaxExpression = parallax * parallaxValue - parallax; ThumbnailList.ItemsSource = LocalDataSource.RandomizeDataSource(Model.Nature); }
private void Page_Loaded(object sender, RoutedEventArgs e) { Compositor compositor = ElementCompositionPreview.GetElementVisual(this).Compositor; // Get scrollviewer ScrollViewer myScrollViewer = ThumbnailList.GetFirstDescendantOfType <ScrollViewer>(); _scrollProperties = ElementCompositionPreview.GetScrollViewerManipulationPropertySet(myScrollViewer); // Setup the expression _parallaxExpression = compositor.CreateExpressionAnimation(); _parallaxExpression.SetScalarParameter("StartOffset", 0.0f); _parallaxExpression.SetScalarParameter("ParallaxValue", 0.5f); _parallaxExpression.SetScalarParameter("ItemHeight", 0.0f); _parallaxExpression.SetReferenceParameter("ScrollManipulation", _scrollProperties); _parallaxExpression.Expression = "(ScrollManipulation.Translation.Y + StartOffset - (0.5 * ItemHeight)) * ParallaxValue - (ScrollManipulation.Translation.Y + StartOffset - (0.5 * ItemHeight))"; ThumbnailList.ItemsSource = Model.Items; }