Beispiel #1
0
        private async Task<bool> HideOrShowStack(StackLayout stack)
        {
            if (!stack.IsVisible && stack.TranslationY == 0)
            {
                foreach (StackLayout stackLayout in listStack)
                {
                    if (stackLayout.IsVisible)
                    {
                        stackLayout.IsVisible = false;
                    }
                }
                stack.Opacity = 0;
                stack.IsVisible = true;
                await stack.FadeTo(1, 250);
            }
            else if (stack.IsVisible)
            {
                await stack.TranslateTo(stack.TranslationX, stack.TranslationY - stack.Height);
                stack.IsVisible = false;

                if (stack == addBeerStack || stack == addBarStack)
                {
                    if (stack == addBeerStack)
                    {
                        beerPickerTextRecognition.SelectedItem = null;
                        barForBeerPicker.SelectedItem = null;
                        entryChooseBeerName.Text = null;
                        entryAlcohol.Text = null;
                        entryType.Text = null;
                    }

                    if (stack == addBarStack)
                    {
                        entryNameBar.Text = null;
                        entryNumStreet.Text = null;
                        entryNameStreet.Text = null;
                        entryZIPCode.Text = null;
                        entryNameCity.Text = null;
                    }

                    ChangeTapRecognizer(addBeerInBarStack, addBeerInBarFrame);
                }
            }
            else
            {
                foreach (StackLayout stackLayout in listStack)
                {
                    if (stackLayout.IsVisible)
                    {
                        stackLayout.IsVisible = false;
                    }
                }
                stack.IsVisible = true;
                await stack.TranslateTo(stack.TranslationX, stack.TranslationY + stack.Height);
            }
            return true;
        }
Beispiel #2
0
 private void OpenMenu()
 {
     Device.BeginInvokeOnMainThread(() =>
     {
         this.TranslateTo(0, 0, 300).ContinueWith(a =>
         {
             _fishButton.InputTransparent = true;
             SwitchFishLeftRight();
             _fishButton.FadeTo(0.0, 300).ContinueWith(b =>
             {
                 _menuLayout.TranslateTo(0, 0, 300);
             });
         });
     });
 }
Beispiel #3
0
        internal async static void ToggleToolbar(StackLayout layout, bool isVisible, uint duration)
        {
            if (!isVisible)
            {
                await layout.TranslateTo(0, 50, duration, Easing.SinOut);

                await Task.Delay(Convert.ToInt32(duration));

                layout.IsVisible = false;
            }
            else
            {
                layout.IsVisible = true;
                await layout.TranslateTo(0, 0, duration, Easing.SinOut);
            }
        }
Beispiel #4
0
            public static StackLayout MainScreenRow <T>(bool Dropdown, bool Animate, params T[] MainScreenItems) where T : View
            {
                Log("Generating MainScreenRow...");
                StackLayout MenuScreenRow = new StackLayout
                {
                    Orientation       = StackOrientation.Horizontal,
                    HorizontalOptions = LayoutOptions.CenterAndExpand,
                    VerticalOptions   = LayoutOptions.FillAndExpand,
                    //Spacing = 50,
                    Children = { }
                };

                foreach (T MenuScreenItem in MainScreenItems)
                {
                    MenuScreenRow.Children.Add(MenuScreenItem);
                }
                Log("Added all items into MainScreenRow");
                if (Dropdown)
                {
                    Device.StartTimer(Device.Idiom != TargetIdiom.Desktop && Animate ? Seconds(1) : Milliseconds(1),
                                      () => { MenuScreenRow.Spacing = MainScreenItems[0].Width;
                                              MenuScreenRow.TranslateTo(0, MainScreenItems[0].Height / 2, 1000, Easing.BounceOut); return(false); });
                }
                return(MenuScreenRow);
            }
        public void SetContainerLoginPosition(bool onFocus, StackLayout containerLogin)
        {
            var mainDisplayInfo = DeviceDisplay.MainDisplayInfo;
            var height          = mainDisplayInfo.Height;

            if (onFocus && height <= 2000)
            {
                containerLogin.TranslateTo(0, -75, 50);
            }
            else if (onFocus && height > 2000)
            {
                containerLogin.TranslateTo(0, -110, 50);
            }
            else
            {
                containerLogin.TranslateTo(0, 0, 50);
            }
        }
Beispiel #6
0
        protected async Task ShakeGlass(CancellationToken cancellationToken)
        {
            while (!cancellationToken.IsCancellationRequested)
            {
                AnimateOnMain(async() =>
                {
                    var t1 = glassHereContainer.TranslateTo(0, -30, 220);
                    var t2 = glassHereContainer.RotateTo(-3, 220);
                    await Task.WhenAll(t1, t2);

                    await Task.Delay(60);

                    await glassHereContainer.TranslateTo(0, 0, 220);
                    await glassHereContainer.RotateTo(0, 150);
                });

                await Task.Delay(3000, cancellationToken);
            }
        }
Beispiel #7
0
        public RightSlideLayout()
        {
            VM.SlideView = this;

            tintPanel = new StackLayout()
            {
                Opacity         = 0.2,
                BackgroundColor = Color.Black
            };

            Content = new Grid()
            {
                Children =
                {
                    new StackLayout().Assign(out MainContent).Row(0).Column(0),
                    new StackLayout()
                    {
                        Orientation = StackOrientation.Horizontal,
                        Children    =
                        {
                            new StackLayout()
                            {
                                HorizontalOptions = LayoutOptions.StartAndExpand,
                            },
                            new StackLayout()
                            {
                                WidthRequest = RightSlideLayout.PanelWidth,
                            }.Assign(out SlideContent)
                        }
                    }.Assign(out SlideContainer).Row(0).Column(0)
                    //.BindViewTap(async()=>{
                    //    await ClosePanel();
                    //})
                }
            }.Assign(out ContentGrid);

            MainThread.BeginInvokeOnMainThread(async() =>
            {
                SlideContainer.InputTransparent = true;
                await SlideContent.TranslateTo(RightSlideLayout.PanelWidth, 0, 100);
            });
        }
Beispiel #8
0
 private async void AnimateToTab(double quotesPosition, double ordersPosition, double invoicesPosition, double btnSelectedPosition)
 {
     labelSelected.Text = selectedTab.ToString();
     await Task.WhenAll(
         stackLayoutQuotes.TranslateTo(quotesPosition, 0, tabAnimationTime, Easing.SinOut),
         stackLayoutOrders.TranslateTo(ordersPosition, 0, tabAnimationTime, Easing.SinOut),
         stackLayoutInvoices.TranslateTo(invoicesPosition, 0, tabAnimationTime, Easing.SinOut),
         btnSelected.TranslateTo(btnSelectedPosition, 0, tabAnimationTime, Easing.SinOut),
         labelSelected.TranslateTo(btnSelectedPosition, 0, tabAnimationTime, Easing.SinOut)
         );
 }
Beispiel #9
0
            private void PositionStack()
            {
                if (rootPage == null)
                {
                    var page = Navigation.NavigationStack.LastOrDefault();
                    if (page == null)
                    {
                        page = Application.Current.MainPage;
                    }

                    rootPage = GetRootPage(page);
                }

                if (rootPage != null)
                {
                    var newPos = viewPositionService.GetRelativePosition(this, rootPage);
                    popupStack.TranslateTo(newPos.X - popupStack.WidthRequest, newPos.Y, 1, null);
                }
            }
Beispiel #10
0
        public MainPage()
        {
            var visibleImage = new Image
            {
                Source            = "song_entry_premium_symbol.png",
                HorizontalOptions = LayoutOptions.Start, HeightRequest = 50
            };
            var invisibleImage = new Image
            {
                Source            = "song_entry_premium_symbol.png",
                HorizontalOptions = LayoutOptions.Start, IsVisible = false,
                HeightRequest     = 50
            };
            var transparentImage = new Image
            {
                Source            = "song_entry_premium_symbol.png",
                HorizontalOptions = LayoutOptions.Start, Opacity = 0,
                HeightRequest     = 50
            };

            var offScreenImage = new Image
            {
                Source            = "song_entry_premium_symbol.png",
                HorizontalOptions = LayoutOptions.Start, TranslationX = 1000,
                TranslationY      = 1000, HeightRequest = 50
            };

            var visibleContainer = new StackLayout
            {
                Children =
                {
                    new Image
                    {
                        Source            = "song_entry_premium_symbol.png",
                        HorizontalOptions = LayoutOptions.Start, HeightRequest = 50
                    }
                }
            };

            var invisibleContainer = new StackLayout
            {
                Children =
                {
                    new Image
                    {
                        Source            = "song_entry_premium_symbol.png",
                        HorizontalOptions = LayoutOptions.Start, HeightRequest = 50
                    }
                },
                IsVisible = false
            };

            var transparentContainer = new StackLayout
            {
                Children =
                {
                    new Image
                    {
                        Source            = "song_entry_premium_symbol.png",
                        HorizontalOptions = LayoutOptions.Start, HeightRequest = 50
                    }
                },
                Opacity = 0
            };


            var offScreenContainer = new StackLayout
            {
                Children =
                {
                    new Image
                    {
                        Source            = "song_entry_premium_symbol.png",
                        HorizontalOptions = LayoutOptions.Start, HeightRequest = 50
                    }
                },
                TranslationX = 1000, TranslationY = 1000
            };

            var contentWrapper = new StackLayout();

            contentWrapper.Children.Add(visibleImage);
            contentWrapper.Children.Add(invisibleImage);
            contentWrapper.Children.Add(transparentImage);
            contentWrapper.Children.Add(offScreenImage);

            contentWrapper.Children.Add(visibleContainer);
            contentWrapper.Children.Add(invisibleContainer);
            contentWrapper.Children.Add(transparentContainer);
            contentWrapper.Children.Add(offScreenContainer);

            Task.Run(async() =>
            {
                await Task.Delay(2000);
                await MainThread.InvokeOnMainThreadAsync(async() =>
                {
                    invisibleImage.IsVisible = true;
                    await Task.WhenAll(transparentImage.FadeTo(1), offScreenImage.TranslateTo(0, 0));

                    invisibleContainer.IsVisible = true;
                    await Task.WhenAll(transparentContainer.FadeTo(1), offScreenContainer.TranslateTo(0, 0));

                    //when forcing layout on parent layout, it works. But that is not an acceptable solution
                    transparentContainer.ForceLayout();
                });
            });
            Content = contentWrapper;
        }
Beispiel #11
0
        private StackLayout MakeServiceRow(Service service)
        {
            var name = new CustomLabel();

            name.Text       = service.Name;
            name.Margin     = new Thickness(20, 10, 0, 0);
            name.TextColor  = Color.Black;
            name.FontFamily = UIUtils.FONT_SFUIDISPLAY_REGULAR;
            name.FontSize   = 16;

            var price  = new CustomLabel();
            var length = service.Length;

            price.TextColor  = Color.FromHex("CCCCCC");
            price.Text       = UIUtils.NIARA_SIGN + service.Price + " and up for " + length + " minutes";
            price.FontFamily = UIUtils.FONT_SFUIDISPLAY_REGULAR;
            price.Margin     = new Thickness(20, 0, 0, 0);

            var editButton   = UIUtils.MakeButton("Edit", UIUtils.FONT_SFUIDISPLAY_REGULAR);
            var deleteButton = UIUtils.MakeButton("Delete", UIUtils.FONT_SFUIDISPLAY_REGULAR);

            editButton.BackgroundColor = Color.FromHex("C8C7CD");
            editButton.WidthRequest    = 90;
            deleteButton.WidthRequest  = 100;
            editButton.SetValue(UIUtils.TagProperty, service.Id);
            deleteButton.SetValue(UIUtils.TagProperty, service.Id);
            editButton.Clicked   += OnEditClick;
            deleteButton.Clicked += OnDeleteClick;

            var info = new StackLayout
            {
                BackgroundColor = Color.White,
                HeightRequest   = editButton.HeightRequest,
                Children        = { name, price }
            };

            var infoLayout = new RelativeLayout();

            infoLayout.Children.Add(deleteButton, Constraint.RelativeToParent(p => p.Width - deleteButton.WidthRequest));
            infoLayout.Children.Add(editButton, Constraint.RelativeToParent(p => p.Width - deleteButton.WidthRequest - editButton.WidthRequest));
            infoLayout.Children.Add(info, Constraint.Constant(0), Constraint.Constant(0), Constraint.RelativeToParent(p => p.Width));

            double panDX = 0;
            var    pan   = new PanGestureRecognizer();

            pan.PanUpdated += (o, e) =>
            {
                switch (e.StatusType)
                {
                case GestureStatus.Started:
                    panDX = 0;
                    break;

                case GestureStatus.Running:
                    panDX = e.TotalX;
                    break;

                case GestureStatus.Completed:
                    if (panDX < 0)
                    {
                        info.TranslateTo(-(editButton.WidthRequest + deleteButton.WidthRequest), 0);
                    }
                    else
                    {
                        info.TranslateTo(0, 0);
                    }
                    break;
                }
            };
            info.GestureRecognizers.Add(pan);

            var line   = UIUtils.MakeSeparator(true);
            var layout = new StackLayout
            {
                Spacing  = 0,
                Children = { infoLayout, line }
            };

            return(layout);
        }
 public void TranslateStackLayout(StackLayout sl, double x, double y, uint length, Easing esFunc)
 {
     sl.TranslateTo(x, y, length, esFunc);
 }