Esempio n. 1
0
        void MainWindowNavigated(object sender, NavigationEventArgs e)
        {
            GoBackCommand.RaiseCanExecuteChanged();

            var newCtrl = (UIElement)e.Content;

            BindingOperations.SetBinding(newCtrl, HeightProperty, Utility.CreateBinding(_contentGrid, "ActualHeight"));
            BindingOperations.SetBinding(newCtrl, WidthProperty, Utility.CreateBinding(_contentGrid, "ActualWidth"));
            RemoveLogicalChild(newCtrl);
            _contentCanvas.Children.Add(newCtrl);

            if (_lastPage == null)
            {
                return;
            }

            var moveRight = _lastMode == NavigationMode.Forward || _lastMode == NavigationMode.New;

            var ctx = KeyMenuContext.GetContext(this);

            ctx.PauseUpdates();

            var newDa = new DoubleAnimation();

            newDa.From           = moveRight ? _contentGrid.ActualWidth : -_contentGrid.ActualWidth;
            newDa.To             = 0;
            newDa.Duration       = TimeSpan.FromSeconds(0.175);
            newDa.EasingFunction = new PowerEase();
            newDa.Completed     += (s, e2) => ctx.ResumeUpdates();
            newCtrl.Visibility   = Visibility.Visible;
            newCtrl.BeginAnimation(Canvas.LeftProperty, newDa);

            var oldDa = new DoubleAnimation();

            oldDa.From           = 0;
            oldDa.To             = -newDa.From;
            oldDa.Duration       = newDa.Duration;
            oldDa.EasingFunction = new PowerEase();
            oldDa.Completed     += (s, e2) => _contentCanvas.Children.Remove(_lastPage);
            _lastPage.BeginAnimation(Canvas.LeftProperty, oldDa);
        }
Esempio n. 2
0
        protected override void OnEvent(EventArgs eventArgs)
        {
            if (_registered)
            {
                return;
            }

            KeyMenuContext.Register(Source);

            _targetElement = !ActiveOnFocus?GetRoot(Source) : Source;

            if (FiredOn == KeyTriggerFiredOn.KeyDown)
            {
                _targetElement.KeyDown += OnKeyPress;
            }
            else
            {
                _targetElement.KeyUp += OnKeyPress;
            }

            _registered = true;
        }