示例#1
0
        private void EnableContentTransitions()
        {
            var transition = new EntranceThemeTransition();

            transition.FromHorizontalOffset = 1.0;
            DetailContentPresenter.ContentTransitions.Clear();
            DetailContentPresenter.ContentTransitions.Add(transition);
        }
        private void AddItemContainerTransition()
        {
            TransitionCollection    collection = new TransitionCollection();
            EntranceThemeTransition transition = new EntranceThemeTransition();

            collection.Add(transition);
            this.ItemContainerTransitions = collection;
        }
        void SetPage(Page page, bool isAnimated, bool isPopping)
        {
            if (_currentPage != null)
            {
                if (isPopping)
                {
                    _currentPage.Cleanup();
                }

                _container.Content = null;

                _currentPage.PropertyChanged -= OnCurrentPagePropertyChanged;
            }

            if (!isPopping)
            {
                _previousPage = _currentPage;
            }

            _currentPage = page;

            if (page == null)
            {
                return;
            }

            UpdateBackButton();
            UpdateBackButtonTitle();

            page.PropertyChanged += OnCurrentPagePropertyChanged;

            IVisualElementRenderer renderer = page.GetOrCreateRenderer();

            UpdateTitleVisible();
            UpdateTitleOnParents();

            if (isAnimated && _transition == null)
            {
                _transition = new EntranceThemeTransition();
                _container.ContentTransitions = new TransitionCollection();
            }

            if (!isAnimated && _transition != null)
            {
                _container.ContentTransitions.Remove(_transition);
            }
            else if (isAnimated && _container.ContentTransitions.Count == 0)
            {
                _container.ContentTransitions.Add(_transition);
            }

            _container.Content     = renderer.ContainerElement;
            _container.DataContext = page;
        }
示例#4
0
        protected override void SetupPageTransition(Transition transition, bool isAnimated, bool isPopping)
        {
            var newTransition = new EntranceThemeTransition {
                FromVerticalOffset = 0
            };

            if (isPopping)
            {
                newTransition.FromHorizontalOffset = -ContainerElement.ActualWidth;
            }
            else
            {
                newTransition.FromHorizontalOffset = ContainerElement.ActualWidth;
            }

            base.SetupPageTransition(newTransition, isAnimated, isPopping);
        }
        protected virtual void SetupPageTransition(Transition transition, bool isAnimated, bool isPopping)
        {
            PageControl nativeView = NativeViewValidation();

            if (isAnimated && transition == null)
            {
                transition  = new EntranceThemeTransition();
                _transition = (EntranceThemeTransition)transition;
                nativeView.ContentTransitions = new TransitionCollection();
            }

            if (!isAnimated && nativeView.ContentTransitions?.Count > 0)
            {
                nativeView.ContentTransitions.Clear();
            }
            else if (isAnimated &&
                     nativeView.ContentTransitions != null &&
                     nativeView.ContentTransitions.Contains(transition) == false)
            {
                nativeView.ContentTransitions.Clear();
                nativeView.ContentTransitions.Add(transition);
            }
        }
        private async Task GenerateReadOnlyFormAsync()
        {
            IsViewReady = false;
            control     = new ContentControl();
            var collection = new TransitionCollection();
            var theme      = new EntranceThemeTransition();

            //var info = new ContinuumNavigationTransitionInfo();

            //theme.DefaultNavigationTransitionInfo = info;
            collection.Add(theme);



            control.HorizontalContentAlignment = HorizontalAlignment.Stretch;
            control.VerticalContentAlignment   = VerticalAlignment.Stretch;
            grid = new Grid();
            grid.VerticalAlignment   = VerticalAlignment.Stretch;
            grid.HorizontalAlignment = HorizontalAlignment.Stretch;
            grid.Transitions         = collection;
            ring  = new ProgressRing();
            stack = new StackPanel();
            stack.HorizontalAlignment = HorizontalAlignment.Stretch;
            stack.VerticalAlignment   = VerticalAlignment.Stretch;
            ring.HorizontalAlignment  = HorizontalAlignment.Center;
            ring.VerticalAlignment    = VerticalAlignment.Center;
            ring.Height     = 75;
            ring.Width      = 75;
            ring.Foreground = new SolidColorBrush(Colors.White);

            grid.Children.Add(ring);
            control.Content = grid;
            this.HorizontalContentAlignment = HorizontalAlignment.Stretch;
            this.VerticalContentAlignment   = VerticalAlignment.Stretch;
            this.Content = control;



            ring.IsActive = true;

            ring.Foreground = this.ForegroundText;

            if (this.CurrentContext == null)
            {
                ring.IsActive = false;
                var textBlock = new TextBlock();
                textBlock.HorizontalAlignment = HorizontalAlignment.Center;
                textBlock.VerticalAlignment   = VerticalAlignment.Center;
                textBlock.FontSize            = 16;
                textBlock.FontWeight          = FontWeights.Light;
                textBlock.Foreground          = new SolidColorBrush(Colors.White);
                textBlock.Text = "No hay datos para mostrar";
                this.Content   = textBlock;
            }
            else
            {
                Type mainType = this.CurrentContext.GetType();

                var props = new List <PropertyInfo>(mainType.GetProperties(BindingFlags.Public | BindingFlags.Instance)
                                                    .Where(x => x.GetCustomAttributes(typeof(AutoGeneratePropertyAttribute), false).Any() &&
                                                           x.GetCustomAttributes(typeof(AutoGeneratePropertyAttribute), false)
                                                           .Cast <AutoGeneratePropertyAttribute>()
                                                           .Any(z => z.AutoGenerate == true))
                                                    .ToList());
                var orderedItems = await GetOrderedProperties(props);

                await GenerateForm(orderedItems);
            }
        }