Ejemplo n.º 1
0
        protected virtual async void MenuTapped(object sender, EventArgs e)
        {
            if (!IsMasterDisplayed)
            {
                MasterStack.IsVisible = true;
                await MasterStack.LayoutTo(new Rectangle(100 - MasterStack.TranslationX, 0, 600, 600), 250U, Easing.SinOut);

                IsMasterDisplayed = true;
            }
            else
            {
                MasterStack.IsVisible = false;
                await MasterStack.LayoutTo(new Rectangle(MasterStack.TranslationX - 100, 0, 600, 600), 250U, Easing.SinOut);

                IsMasterDisplayed = false;
            }

            //var mainPage = Application.Current.MainPage as MasterDetailPage;
            //if (mainPage != null)
            //{
            //    mainPage.IsPresented = !mainPage.IsPresented;
            //    //DarkStack.IsVisible = mainPage.IsPresented;
            //    //mainPage.IsPresentedChanged += (o, args) =>
            //    //{
            //    //    DarkStack.IsVisible = mainPage.IsPresented;
            //    //};
            //}
        }
Ejemplo n.º 2
0
        public virtual async void MenuSwipe(object sender, PanUpdatedEventArgs e)
        {
            double totalLeftX  = 0;
            double totalRightX = 0;

            if (e.StatusType == GestureStatus.Running || e.StatusType == GestureStatus.Started)
            {
                XPoints.Add(e.TotalX);
                totalLeftX  = -1 * MasterStack.TranslationX / 1.5 + 100 + e.TotalX;
                totalRightX = MasterStack.TranslationX / 1.5 + 100 + e.TotalX;
                if (totalLeftX < -700 || totalRightX > 700 || e.TotalX.Equals(0))
                {
                    return;
                }

                if (e.TotalX < 0)
                {
                    MasterStack.IsVisible = true;
                    await MasterStack.LayoutTo(
                        new Rectangle(-1 * MasterStack.TranslationX / 1.5 + 100 + e.TotalX, 0, 600, 600), 250U,
                        Easing.SinOut);

                    XPoints.RemoveAll(x => x > 0);
                    IsMasterDisplayed = true;
                }
                else
                {
                    MasterStack.IsVisible = true;
                    await MasterStack.LayoutTo(
                        new Rectangle(MasterStack.TranslationX / 2 + 100 + e.TotalX, 0, 600, 600), 250U,
                        Easing.SinOut);

                    XPoints.RemoveAll(x => x < 0);
                    IsMasterDisplayed = true;
                }
                return;
            }

            if (e.StatusType == GestureStatus.Completed)
            {
                if (IsMasterDisplayed)
                {
                    MasterStack.IsVisible = true;
                    await MasterStack.LayoutTo(new Rectangle(100 - MasterStack.TranslationX, 0, 600, 600), 250U, Easing.SinOut);

                    XPoints.Clear();
                    IsMasterDisplayed = true;
                }
                else
                {
                    MasterStack.IsVisible = false;
                    await MasterStack.LayoutTo(new Rectangle(MasterStack.TranslationX - 100, 0, 600, 600), 250U, Easing.SinOut);

                    XPoints.Clear();
                    IsMasterDisplayed = false;
                }
            }
        }