FocusManager.TryMoveFocusAsync Метод

Определение

Перегрузки

TryMoveFocusAsync(FocusNavigationDirection)

Асинхронно пытается изменить фокус с текущего элемента с фокусом на следующий фокусируемый элемент в указанном направлении.

TryMoveFocusAsync(FocusNavigationDirection, FindNextElementOptions)

Асинхронно пытается изменить фокус с текущего элемента с фокусом на следующий фокусируемый элемент в указанном направлении и подвергается указанным параметрам навигации.

TryMoveFocusAsync(FocusNavigationDirection)

Асинхронно пытается изменить фокус с текущего элемента с фокусом на следующий фокусируемый элемент в указанном направлении.

public:
 static IAsyncOperation<FocusMovementResult ^> ^ TryMoveFocusAsync(FocusNavigationDirection focusNavigationDirection);
/// [Windows.Foundation.Metadata.Overload("TryMoveFocusAsync")]
/// [Windows.Foundation.Metadata.RemoteAsync]
 static IAsyncOperation<FocusMovementResult> TryMoveFocusAsync(FocusNavigationDirection const& focusNavigationDirection);
[Windows.Foundation.Metadata.Overload("TryMoveFocusAsync")]
[Windows.Foundation.Metadata.RemoteAsync]
public static IAsyncOperation<FocusMovementResult> TryMoveFocusAsync(FocusNavigationDirection focusNavigationDirection);
function tryMoveFocusAsync(focusNavigationDirection)
Public Shared Function TryMoveFocusAsync (focusNavigationDirection As FocusNavigationDirection) As IAsyncOperation(Of FocusMovementResult)

Параметры

focusNavigationDirection
FocusNavigationDirection

Направление, которое фокус перемещается от элемента к элементу в пользовательском интерфейсе приложения.

Возвращаемое значение

FocusMovementResult, указывающий, был ли фокус успешно установлен.

Атрибуты

Примеры

Здесь мы покажем, как настроить фокус на объект WebView и, если это не удается, восстановите фокус на исходном элементе.

async void MoveFocus(WebView webView))
{
    FocusMovementResult result;
    result = await FocusManager.TryFocusAsync(webView, FocusState.Programmatic);
    if (!result.Succeeded)
    {
        // Restore focus to original element.
        this.Focus(FocusState.Programmatic);
    }
}

Комментарии

  • FocusManager.TryMoveFocus методы возвращают значение true (успешно), прежде чем изменение фокуса завершится.
  • GetFocusedElement не возвращает вновь ориентированный объект до завершения асинхронной операции.
  • Элемент управления потеря фокуса получает события LostFocus синхронно, но не получает LostFocus до завершения асинхронной операции.
  • Элемент управления, получая фокус, получает события GettingFocus синхронно, но не получает GotFocus до завершения асинхронной операции.

TryFocusAsync выполняется синхронно при вызове элемента, запущенного в процессе приложения.

Вы также можете использовать метод FindNextElement(FocusNavigationDirection, FindNextElementOptions) или метод FindNextElement(FocusNavigationDirection) для программного перемещения фокуса. Эти методы извлекают элемент (как DependencyObject), который будет получать фокус на основе указанного направления навигации (только направление навигации нельзя использовать для эмуляции навигации табуляции).

Заметка

Мы рекомендуем использовать метод FindNextElement вместо FindNextFocusableElement, так как FindNextFocusableElement получает UIElement, который возвращает null, если следующий фокусируемый элемент не является UIElement (например, объект гиперссылки).

См. также раздел

Применяется к

TryMoveFocusAsync(FocusNavigationDirection, FindNextElementOptions)

Асинхронно пытается изменить фокус с текущего элемента с фокусом на следующий фокусируемый элемент в указанном направлении и подвергается указанным параметрам навигации.

public:
 static IAsyncOperation<FocusMovementResult ^> ^ TryMoveFocusAsync(FocusNavigationDirection focusNavigationDirection, FindNextElementOptions ^ focusNavigationOptions);
/// [Windows.Foundation.Metadata.Overload("TryMoveFocusWithOptionsAsync")]
/// [Windows.Foundation.Metadata.RemoteAsync]
 static IAsyncOperation<FocusMovementResult> TryMoveFocusAsync(FocusNavigationDirection const& focusNavigationDirection, FindNextElementOptions const& focusNavigationOptions);
[Windows.Foundation.Metadata.Overload("TryMoveFocusWithOptionsAsync")]
[Windows.Foundation.Metadata.RemoteAsync]
public static IAsyncOperation<FocusMovementResult> TryMoveFocusAsync(FocusNavigationDirection focusNavigationDirection, FindNextElementOptions focusNavigationOptions);
function tryMoveFocusAsync(focusNavigationDirection, focusNavigationOptions)
Public Shared Function TryMoveFocusAsync (focusNavigationDirection As FocusNavigationDirection, focusNavigationOptions As FindNextElementOptions) As IAsyncOperation(Of FocusMovementResult)

Параметры

focusNavigationDirection
FocusNavigationDirection

Направление, которое фокус перемещается от элемента к элементу в пользовательском интерфейсе приложения.

focusNavigationOptions
FindNextElementOptions

Параметры навигации, используемые для идентификации кандидата фокуса.

Возвращаемое значение

FocusMovementResult, указывающий, был ли фокус успешно установлен.

Атрибуты

Примеры

Здесь мы покажем, как настроить фокус на объект WebView и, если это не удается, восстановите фокус на исходном элементе.

async void MoveFocus(WebView webView))
{
    FocusMovementResult result;
    result = await FocusManager.TryFocusAsync(webView, FocusState.Programmatic);
    if (!result.Succeeded)
    {
        // Restore focus to original element.
        this.Focus(FocusState.Programmatic);
    }
}

Комментарии

  • FocusManager.TryMoveFocus методы возвращают значение true (успешно), прежде чем изменение фокуса завершится.
  • GetFocusedElement не возвращает вновь ориентированный объект до завершения асинхронной операции.
  • Элемент управления потеря фокуса получает события LostFocus синхронно, но не получает LostFocus до завершения асинхронной операции.
  • Элемент управления, получая фокус, получает события GettingFocus синхронно, но не получает GotFocus до завершения асинхронной операции.

TryFocusAsync выполняется синхронно при вызове элемента, запущенного в процессе приложения.

Вы также можете использовать метод FindNextElement(FocusNavigationDirection, FindNextElementOptions) или метод FindNextElement(FocusNavigationDirection) для программного перемещения фокуса. Эти методы извлекают элемент (как DependencyObject), который будет получать фокус на основе указанного направления навигации (только направление навигации нельзя использовать для эмуляции навигации табуляции).

Заметка

Мы рекомендуем использовать метод FindNextElement вместо FindNextFocusableElement, так как FindNextFocusableElement получает UIElement, который возвращает null, если следующий фокусируемый элемент не является UIElement (например, объект гиперссылки).

См. также раздел

Применяется к