次の方法で共有


FocusManager.TryFocusAsync(DependencyObject, FocusState) メソッド

定義

アプリケーションの初期化時に、要素にフォーカスを設定しようと非同期的に試行します。

public:
 static IAsyncOperation<FocusMovementResult ^> ^ TryFocusAsync(DependencyObject ^ element, FocusState value);
/// [Windows.Foundation.Metadata.RemoteAsync]
 static IAsyncOperation<FocusMovementResult> TryFocusAsync(DependencyObject const& element, FocusState const& value);
[Windows.Foundation.Metadata.RemoteAsync]
public static IAsyncOperation<FocusMovementResult> TryFocusAsync(DependencyObject element, FocusState value);
function tryFocusAsync(element, value)
Public Shared Function TryFocusAsync (element As DependencyObject, value As FocusState) As IAsyncOperation(Of FocusMovementResult)

パラメーター

element
DependencyObject

フォーカスを設定するオブジェクト。

value
FocusState

要素がフォーカスを取得する方法を指定する FocusState 列挙の値の 1 つ。

戻り値

フォーカスが正常に設定されたかどうかを示す FocusMovementResult

属性

Windows の要件

デバイス ファミリ
Windows 10, version 1803 (10.0.17134.0 で導入)
API contract
Windows.Foundation.UniversalApiContract (v6.0 で導入)

ここでは、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); 
    } 
}

注釈

WebView などの一部のオブジェクトは、アプリ プロセスまたは別のプロセスで実行できます (「WebViewExecutionMode.SeparateProcess」を参照)。

オブジェクトがアプリ プロセスで実行されると、以前にフォーカスしたオブジェクトと新しくフォーカスされたオブジェクトの両方に対して、次のフォーカス イベントが想定どおりに発生します。

ただし、新しくフォーカスされたオブジェクトが別のプロセスで実行されている場合、これらのイベント動作の一部が異なる場合があります。

  • GetFocusedElement は、TryFocusAsync 操作が完了するまで、新しくフォーカスされたオブジェクトを返しません。
  • フォーカスを失うコントロールは 、LosingFocus イベントを 同期的に受け取りますが、非同期操作が完了するまで LostFocus を受け取りません。
  • フォーカスを取得するコントロールは 、GettingFocus イベントを同期的に受け取りますが、非同期操作が完了するまで GotFocus を 受け取りません。

TryFocusAsync は、アプリ プロセスで実行されている要素で呼び出されると同期的に完了します。

適用対象

こちらもご覧ください