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; }
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); }); }); }); }
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); } }
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); } }
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); } }
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); }); }
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) ); }
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); } }
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; }
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); }