public ParallaxingListItems() { Model = new LocalDataSource(); this.InitializeComponent(); }
public PointerEnterEffects() { Model = new LocalDataSource(); this.InitializeComponent(); }
protected override ILocalDataSource <IEnumerable <TxPriorityContract.Destination> > GetMinGasPricesLocalDataStore() => LocalDataSource.GetMinGasPricesLocalDataSource();
public CustomConnectedAnimation() { Model = new LocalDataSource(); this.InitializeComponent(); NavigationCacheMode = NavigationCacheMode.Enabled; }
public SwipeScroller() { this.InitializeComponent(); Model = new LocalDataSource(); }
protected override ILocalDataSource <IEnumerable <Address> > GetWhitelistLocalDataStore() => LocalDataSource.GetWhitelistLocalDataSource();
public ForegroundFocusEffects() { Model = new LocalDataSource(); this.InitializeComponent(); }
public Continuity() { Model = new LocalDataSource(); this.InitializeComponent(); NavigationCacheMode = NavigationCacheMode.Enabled; }
public PullToRefresh() { Model = new LocalDataSource(); this.InitializeComponent(); }
public PhotoViewer() { Model = new LocalDataSource(); this.InitializeComponent(); }
private void SamplePage_Loaded(object sender, Windows.UI.Xaml.RoutedEventArgs e) { // Retrieve the ScrollViewer that the GridView is using internally var scrollViewer = gridView.GetFirstDescendantOfType <ScrollViewer>(); // Update the ZIndex of the header container so that the header is above the items when scrolling var headerPresenter = (UIElement)VisualTreeHelper.GetParent((UIElement)gridView.Header); var headerContainer = (UIElement)VisualTreeHelper.GetParent(headerPresenter); Canvas.SetZIndex((UIElement)headerContainer, 1); // Get the PropertySet that contains the scroll values from the ScrollViewer _scrollerPropertySet = ElementCompositionPreview.GetScrollViewerManipulationPropertySet(scrollViewer); _compositor = _scrollerPropertySet.Compositor; Model = new LocalDataSource(); gridView.ItemsSource = Model.AggregateDataSources(new ObservableCollection <Thumbnail>[] { Model.Landscapes, Model.Nature, Model.Abstract }); // Create a PropertySet that has values to be referenced in the ExpressionAnimations below _props = _compositor.CreatePropertySet(); _props.InsertScalar("progress", 0); _props.InsertScalar("clampSize", 150); _props.InsertScalar("scaleFactor", 0.7f); // Get references to our property sets for use with ExpressionNodes var scrollingProperties = _scrollerPropertySet.GetSpecializedReference <ManipulationPropertySetReferenceNode>(); var props = _props.GetReference(); var progressNode = props.GetScalarProperty("progress"); var clampSizeNode = props.GetScalarProperty("clampSize"); var scaleFactorNode = props.GetScalarProperty("scaleFactor"); // Create a blur effect to be animated based on scroll position var blurEffect = new GaussianBlurEffect() { Name = "blur", BlurAmount = 0.0f, BorderMode = EffectBorderMode.Hard, Optimization = EffectOptimization.Balanced, Source = new CompositionEffectSourceParameter("source") }; var blurBrush = _compositor.CreateEffectFactory( blurEffect, new[] { "blur.BlurAmount" }) .CreateBrush(); blurBrush.SetSourceParameter("source", _compositor.CreateBackdropBrush()); // Create a Visual for applying the blur effect _blurredBackgroundImageVisual = _compositor.CreateSpriteVisual(); _blurredBackgroundImageVisual.Brush = blurBrush; _blurredBackgroundImageVisual.Size = new Vector2((float)OverlayRectangle.ActualWidth, (float)OverlayRectangle.ActualHeight); // Insert the blur visual at the right point in the Visual Tree ElementCompositionPreview.SetElementChildVisual(OverlayRectangle, _blurredBackgroundImageVisual); // Create and start an ExpressionAnimation to track scroll progress over the desired distance ExpressionNode progressAnimation = EF.Clamp(-scrollingProperties.Translation.Y / clampSizeNode, 0, 1); _props.StartAnimation("progress", progressAnimation); // Create and start an ExpressionAnimation to animate blur radius between 0 and 15 based on progress ExpressionNode blurAnimation = EF.Lerp(0, 15, progressNode); _blurredBackgroundImageVisual.Brush.Properties.StartAnimation("blur.BlurAmount", blurAnimation); // Get the backing visual for the header so that its properties can be animated Visual headerVisual = ElementCompositionPreview.GetElementVisual(Header); // Create and start an ExpressionAnimation to clamp the header's offset to keep it onscreen ExpressionNode headerTranslationAnimation = EF.Conditional(progressNode < 1, 0, -scrollingProperties.Translation.Y - clampSizeNode); headerVisual.StartAnimation("Offset.Y", headerTranslationAnimation); // Create and start an ExpressionAnimation to scale the header during overpan ExpressionNode headerScaleAnimation = EF.Lerp(1, 1.25f, EF.Clamp(scrollingProperties.Translation.Y / 50, 0, 1)); headerVisual.StartAnimation("Scale.X", headerScaleAnimation); headerVisual.StartAnimation("Scale.Y", headerScaleAnimation); //Set the header's CenterPoint to ensure the overpan scale looks as desired headerVisual.CenterPoint = new Vector3((float)(Header.ActualWidth / 2), (float)Header.ActualHeight, 0); // Get the backing visual for the photo in the header so that its properties can be animated Visual photoVisual = ElementCompositionPreview.GetElementVisual(BackgroundRectangle); // Create and start an ExpressionAnimation to opacity fade out the image behind the header ExpressionNode imageOpacityAnimation = 1 - progressNode; photoVisual.StartAnimation("opacity", imageOpacityAnimation); // Get the backing visual for the profile picture visual so that its properties can be animated Visual profileVisual = ElementCompositionPreview.GetElementVisual(ProfileImage); // Create and start an ExpressionAnimation to scale the profile image with scroll position ExpressionNode scaleAnimation = EF.Lerp(1, scaleFactorNode, progressNode); profileVisual.StartAnimation("Scale.X", scaleAnimation); profileVisual.StartAnimation("Scale.Y", scaleAnimation); // Get backing visuals for the text blocks so that their properties can be animated Visual blurbVisual = ElementCompositionPreview.GetElementVisual(Blurb); Visual subtitleVisual = ElementCompositionPreview.GetElementVisual(SubtitleBlock); Visual moreVisual = ElementCompositionPreview.GetElementVisual(MoreText); // Create an ExpressionAnimation that moves between 1 and 0 with scroll progress, to be used for text block opacity ExpressionNode textOpacityAnimation = EF.Clamp(1 - (progressNode * 2), 0, 1); // Start opacity and scale animations on the text block visuals blurbVisual.StartAnimation("Opacity", textOpacityAnimation); blurbVisual.StartAnimation("Scale.X", scaleAnimation); blurbVisual.StartAnimation("Scale.Y", scaleAnimation); subtitleVisual.StartAnimation("Opacity", textOpacityAnimation); subtitleVisual.StartAnimation("Scale.X", scaleAnimation); subtitleVisual.StartAnimation("Scale.Y", scaleAnimation); moreVisual.StartAnimation("Opacity", textOpacityAnimation); moreVisual.StartAnimation("Scale.X", scaleAnimation); moreVisual.StartAnimation("Scale.Y", scaleAnimation); // Get the backing visuals for the text and button containers so that their properites can be animated Visual textVisual = ElementCompositionPreview.GetElementVisual(TextContainer); Visual buttonVisual = ElementCompositionPreview.GetElementVisual(ButtonPanel); // When the header stops scrolling it is 150 pixels offscreen. We want the text header to end up with 50 pixels of its content // offscreen which means it needs to go from offset 0 to 100 as we traverse through the scrollable region ExpressionNode contentOffsetAnimation = progressNode * 100; textVisual.StartAnimation("Offset.Y", contentOffsetAnimation); ExpressionNode buttonOffsetAnimation = progressNode * -100; buttonVisual.StartAnimation("Offset.Y", buttonOffsetAnimation); }
public ThumbnailLighting() { Model = new LocalDataSource(); this.InitializeComponent(); }
public ParalaxedListViewPage() { Model = new LocalDataSource(); this.InitializeComponent(); }
public async Task SetSignedInUserAsync(UserDTO userDTO) { await LocalDataSource.SetUserAsync(userDTO); SignedInUser = userDTO.ToUser(); }
public void Setup() { IDataSource datasource = new LocalDataSource(); _mappingHandler = new CombineMappingHandler(datasource); }