void AddScrollableOffset() { if (Device.RuntimePlatform != Device.macOS) { var cr = Content.Bounds; cr.Height += ServoView.Bounds.Top; MainStackLayout.Layout(cr); } }
void ViewModelOnPropertyChanged(object sender, PropertyChangedEventArgs propertyChangedEventArgs) { if (propertyChangedEventArgs.PropertyName == nameof(_viewModel.FloatingButtonVisibility)) { EraseFloatingButton.ScaleTo(_viewModel.FloatingButtonVisibility ? 1 : 0, easing: Easing.Linear); } else if (propertyChangedEventArgs.PropertyName == nameof(_viewModel.ServoVisibility)) { if (_viewModel.ServoVisibility) { ShowServo(); } else { HideServo(); } } else if (propertyChangedEventArgs.PropertyName == nameof(_viewModel.UrlFocused)) { var black = Color.FromRgba(0, 0, 0, 100); UrlBackground.BackgroundColor = _viewModel.UrlFocused ? black : Color.Transparent; } else if (propertyChangedEventArgs.PropertyName == nameof(_viewModel.CanGoBack)) { BackButton.Scale = _viewModel.CanGoBack ? 1 : 0; } else if (propertyChangedEventArgs.PropertyName == nameof(_viewModel.ToolbarOffset)) { var deviceFactor = -1; if (Device.RuntimePlatform == Device.macOS) { deviceFactor = 1; } MainStackLayout.TranslateTo(0, deviceFactor * _viewModel.ToolbarOffset); float factor = (float)_viewModel.ToolbarOffset / (float)_viewModel.ToolbarHeight; UrlView.FadeTo(1 - 3 * factor); } }
public MyDetailPage() { InitializeComponent(); MainStackLayout.ScaleTo(0); }
protected async override void OnAppearing() { base.OnAppearing(); await MainStackLayout.ScaleTo(1, 250, Easing.Linear); }