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
        }
        internal async Task HidePopover()
        {
            // fade out the elements
            await Task.WhenAll(
                new Task[]
            {
                FakeProductCell.FadeTo(0),
                PagePopover.FadeTo(0)
            });

            // hide our fake product cell
            FakeProductCell.IsVisible = false;

            // hide our Page poper
            PagePopover.IsVisible = false;
        }
Пример #3
0
        /// <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);
        }