FrameworkElement.PredictFocus Method
Assembly: PresentationFramework (in presentationframework.dll)
'Declaration Public Overrides NotOverridable Function PredictFocus ( _ direction As FocusNavigationDirection _ ) As DependencyObject 'Usage Dim instance As FrameworkElement Dim direction As FocusNavigationDirection Dim returnValue As DependencyObject returnValue = instance.PredictFocus(direction)
public final DependencyObject PredictFocus ( FocusNavigationDirection direction )
public override final function PredictFocus ( direction : FocusNavigationDirection ) : DependencyObject
You cannot use methods in XAML.
Parameters
- direction
The direction for which a prospective focus change should be determined.
Return Value
The next element that focus would move to if focus were actually traversed. May return a null reference (Nothing in Visual Basic) if focus cannot be moved relative to this element for the provided direction.The following example implements a handler that handles several possible button inputs, each button representing a possible FocusNavigationDirection. The handler tracks the element with current keyboard focus, and calls PredictFocus on that element, and specifies the appropriate FocusNavigationDirection as initialization for the TraversalRequest type parameter provided. Instead of moving to that element as MoveFocus 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; } } } }
Windows 98, Windows Server 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
The Microsoft .NET Framework 3.0 is supported on Windows Vista, Microsoft Windows XP SP2, and Windows Server 2003 SP1.