共用方式為


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

焦點從元素移至應用程式 UI 內的元素方向。

傳回

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不會傳回新焦點的物件。
  • 控制項遺失焦點會同步接收其 LosingFocus 事件,但在非同步作業完成之前不會收到 LostFocus
  • 取得焦點的控制項會同步接收其 GettingFocus 事件,但在非同步作業完成之前不會收到 GotFocus

在應用程式進程中執行的專案上呼叫時,TryFocusAsync會以同步方式完成。

您也可以使用 FindNextElement (FocusNavigationDirection、FindNextElementOptions) 方法或 FindNextElement (FocusNavigationDirection) 方法來以程式設計方式移動焦點。 這些方法會擷取元素 (為 DependencyObject) ,該元素只會根據指定的導覽方向 (方向流覽接收焦點,無法用來模擬索引標籤導覽) 。

注意

我們建議使用FindNextElement方法,而不是 FindNextFocusableElement ,因為 FindNextFocusableElement 會擷取 UIElement ,如果下一個 UIElement 可設定焦點的專案不是超連結物件) 之類的 (,則會傳回 。 null

另請參閱

適用於

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

焦點從元素移至應用程式 UI 內的元素方向。

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不會傳回新焦點的物件。
  • 控制項遺失焦點會同步接收其 LosingFocus 事件,但在非同步作業完成之前不會收到 LostFocus
  • 取得焦點的控制項會同步接收其 GettingFocus 事件,但在非同步作業完成之前不會收到 GotFocus

在應用程式進程中執行的專案上呼叫時,TryFocusAsync會以同步方式完成。

您也可以使用 FindNextElement (FocusNavigationDirection、FindNextElementOptions) 方法或 FindNextElement (FocusNavigationDirection) 方法來以程式設計方式移動焦點。 這些方法會擷取元素 (為 DependencyObject) ,該元素只會根據指定的導覽方向 (方向流覽接收焦點,無法用來模擬索引標籤導覽) 。

注意

我們建議使用FindNextElement方法,而不是 FindNextFocusableElement ,因為 FindNextFocusableElement 會擷取 UIElement ,如果下一個 UIElement 可設定焦點的專案不是超連結物件) 之類的 (,則會傳回 。 null

另請參閱

適用於