Este artigo foi traduzido por máquina. Para visualizar o arquivo em inglês, marque a caixa de seleção Inglês. Você também pode exibir o texto Em inglês em uma janela pop-up, movendo o ponteiro do mouse sobre o texto.
Tradução
Inglês

Método FrameworkElement.PredictFocus (FocusNavigationDirection)

 

Determina o próximo elemento que deve receber o foco em relação a esse elemento para uma direção de movimento do foco fornecido, mas não move o foco realmente.

Namespace:   System.Windows
Assembly:  PresentationFramework (em PresentationFramework.dll)

public override sealed DependencyObject PredictFocus(
	FocusNavigationDirection direction
)

Parâmetros

direction
Type: System.Windows.Input.FocusNavigationDirection

A direção para a qual uma alteração de foco potencial deve ser determinada.

Valor Retornado

Type: System.Windows.DependencyObject

O próximo elemento para o qual o foco se moverá se o foco for realmente percorrido. Poderá retornar null se o foco não puder ser movido em relação a esse elemento para a direção fornecida.

Exception Condition
InvalidEnumArgumentException

Especifica uma das seguintes instruções no TraversalRequest: Next, Previous, First ou Last. Essas instruções não são válidas para PredictFocus (mas são válidas para MoveFocus).

MoveFocus is the related method that actually does move focus.

The following example implements a handler that handles several possible button inputs, each button representing a possible T:System.Windows.Input.FocusNavigationDirection. The handler tracks the element with current keyboard focus, and calls M:System.Windows.FrameworkElement.PredictFocus(System.Windows.Input.FocusNavigationDirection) on that element, and specifies the appropriate T:System.Windows.Input.FocusNavigationDirection as initialization for the T:System.Windows.Input.TraversalRequest type parameter provided. Instead of moving to that element as M:System.Windows.FrameworkElement.MoveFocus(System.Windows.Input.TraversalRequest) would do, the handler changes the physical dimensions of the predicted focus destination for visualization purposes.

private void OnPredictFocus(object sender, RoutedEventArgs e)
{
    DependencyObject predictionElement = null;

    UIElement elementWithFocus = Keyboard.FocusedElement as UIElement;

    if (elementWithFocus != null)
    {
        // Only these four directions are currently supported
        // by PredictFocus, so we need to filter on these only.
        if ((_focusMoveValue == FocusNavigationDirection.Up) ||
            (_focusMoveValue == FocusNavigationDirection.Down) ||
            (_focusMoveValue == FocusNavigationDirection.Left) ||
            (_focusMoveValue == FocusNavigationDirection.Right))
        {

            // Get the element which would receive focus if focus were changed.
            predictionElement = elementWithFocus.PredictFocus(_focusMoveValue);

            Control controlElement = predictionElement as Control;

            // If a ContentElement.
            if (controlElement != null)
            {
                controlElement.Foreground = Brushes.DarkBlue;
                controlElement.FontSize += 10;
                controlElement.FontWeight = FontWeights.ExtraBold;

                // Fields used to reset the UI when the mouse 
                // button is released.
                _focusPredicted = true;
                _predictedControl = controlElement;
            }
        }
    }
}

.NET Framework
Disponível desde 3.0
Retornar ao início
Mostrar: