private async void TapGestureRecognizer_Tapped(object sender, EventArgs e) { // the user has tapped on an element View element = sender as View; // set the binding context to the selected cell FakeProductCell.BindingContext = element.BindingContext; FakeProductCell.IsVisible = true; // set the layout to the same postion var yScroll = ScrollContainer.ScrollY; Rectangle rect = new Rectangle( x: ScrollContainer.X + element.X, y: ScrollContainer.Y + element.Y - yScroll, width: element.Width, height: element.Height); AbsoluteLayout.SetLayoutBounds(FakeProductCell, rect); // hide the cell we clicked on element.Opacity = 0.01; await FakeProductCell.ExpandToFill(this.Bounds); element.Opacity = 1; // redisplay }
/// <summary> /// animation activated by pressing on a product panel /// </summary> /// <param name="sender"></param> /// <param name="e">never used, do not try</param> private async void TapGestureRecognizer_Tapped(object sender, EventArgs e) { // the user has tapped on an element ProductDisplay element = sender as ProductDisplay; // set the binding context to the selected cell FakeProductCell.BindingContext = element.BindingContext; FakeProductCell.ImageOffsetX = element.ImageOffsetX; FakeProductCell.ImageOffsetY = element.ImageOffsetY; FakeProductCell.Opacity = 1; FakeProductCell.IsVisible = true; // set the selected item ((MainViewModel)this.BindingContext).SelectedProduct = element.BindingContext as ProductViewModel; // set the layout to the same postion var yScroll = ScrollContainer.ScrollY; Rectangle rect = new Rectangle( x: ScrollContainer.X + element.X, y: ScrollContainer.Y + element.Y - yScroll, width: element.Width, height: element.Height); AbsoluteLayout.SetLayoutBounds(FakeProductCell, rect); // hide the cell we clicked on element.Opacity = 0.01; await FakeProductCell.ExpandToFill(this.Bounds); element.Opacity = 1; // display the page popover PagePopover.Opacity = 0; PagePopover.IsVisible = true; await PagePopover.Expand(); Vibration.Vibrate(20); }