Développer Réduire
Cet article a fait l'objet d'une traduction automatique. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. Informations supplémentaires.
Traduction
Source
Ce sujet n'a pas encore été évalué - Évaluez ce sujet

FrameworkElement.PredictFocus, méthode

Détermine l'élément suivant qui reçoit le focus par rapport à cet élément pour une direction fournie de déplacement du focus, mais ne déplace pas le focus.

Espace de noms :  System.Windows
Assembly :  PresentationFramework (dans PresentationFramework.dll)
public override sealed DependencyObject PredictFocus(
	FocusNavigationDirection direction
)

Paramètres

direction
Type : System.Windows.Input.FocusNavigationDirection
La direction pour laquelle une modification éventuelle de focus doit être déterminée.

Valeur de retour

Type : System.Windows.DependencyObject
L'élément suivant dans lequel le focus passerait si le focus sont parcourus réellement. Mai retourne null si le focus ne peut pas être déplacé par rapport à cet élément pour la direction fournie.
ExceptionCondition
InvalidEnumArgumentException

Le spécifié les instructions suivantes dans TraversalRequest: Next, Previous, First, Last. Ces instructions ne sont pas autorisés pour PredictFocus (mais elles sont autorisée pour MoveFocus).

MoveFocus est la méthode associée qui en fait déplace le focus.

l'exemple suivant implémente un gestionnaire qui gère plusieurs entrées possibles de bouton, chaque bouton représentant FocusNavigationDirectionpossible. Le gestionnaire suit l'élément avec le focus clavier actuel, et appelle PredictFocus sur cet élément, et spécifie FocusNavigationDirection approprié comme l'initialisation pour le paramètre de type d' TraversalRequest a fourni. Au lieu de passer à cet élément comme MoveFocus ferait, les modifications du gestionnaire que les dimensions physiques de la destination attendue du focus pour la visualisation 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

Pris en charge dans : 4.5, 4, 3.5, 3.0

.NET Framework Client Profile

Pris en charge dans : 4, 3.5 SP1

Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (rôle principal du serveur non pris en charge), Windows Server 2008 R2 (rôle principal du serveur pris en charge avec SP1 ou version ultérieure ; Itanium non pris en charge)

Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.
Cela vous a-t-il été utile ?
(1500 caractères restants)

Ajouts de la communauté

AJOUTER
© 2013 Microsoft. Tous droits réservés.