示例#1
0
        private void OnPostProcessKey(object sender, KeyEventArgs e)
        {
            if (e.Handled)
            {
                return;
            }

            FocusNavigationDirection navigationDirection;
            DependencyProperty       navigationModeProperty;

            if (TryGetNavigationMode(e, out navigationModeProperty, out navigationDirection))
            {
                UIElement currentTarget = (UIElement)presentationSource.KeyboardDevice.Target ?? presentationSource.RootElement;

                UIElement newTarget = (UIElement)KeyboardNavigationTarget.FindTarget(currentTarget, navigationDirection, navigationModeProperty);

                if (currentTarget != newTarget && newTarget != null)
                {
                    newTarget.Focus();
                }

                e.Handled = true;
            }
        }