FocusManager.TryMoveFocusAsync メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
オーバーロード
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 。
- 属性
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);
}
}
注釈
- TryMoveFocus(Windows.UI.Xaml.Input.FocusNavigationDirection focusNavigationDirection) と FocusManager.TryMoveFocus(FocusNavigationDirection focusNavigationDirection, FindNextElementOptions focusNavigationOptions) は、フォーカスの変更が完了する前に true (成功) を返します。
- GetFocusedElement は、非同期操作が完了するまで、新しくフォーカスされたオブジェクトを返しません。
- フォーカスを失うコントロールは 、LosingFocus イベントを 同期的に受け取りますが、非同期操作が完了するまで LostFocus を受け取りません。
- フォーカスを取得するコントロールは 、GettingFocus イベントを同期的に受け取りますが、非同期操作が完了するまで GotFocus を受け取りません。
TryFocusAsync は、アプリ プロセスで実行されている要素で呼び出されると同期的に完了します。
FindNextElement(FocusNavigationDirection, FindNextElementOptions) メソッドまたは FindNextElement(FocusNavigationDirection) メソッドを使用して、プログラムによってフォーカスを移動することもできます。 これらのメソッドは、指定したナビゲーション方向に基づいてフォーカスを受け取る要素 ( DependencyObject として) を取得します (方向ナビゲーションのみ、タブ ナビゲーションのエミュレートには使用できません)。
注意
FindNextFocusableElement は UIElement を取得するため、FindNextFocusableElement の代わりに FindNextElement メソッドを使用することをお勧めします。これは、次のフォーカス可能な要素が UIElement ( Hyperlink オブジェクトなど) でない場合は null を返します。
こちらもご覧ください
- TryMoveFocusAsync(FocusNavigationDirection, FindNextElementOptions)
- キーボード操作
- キーボード、ゲームパッド、リモコン、アクセシビリティ ツールのフォーカス ナビゲーション
- プログラムによるフォーカス ナビゲーション
適用対象
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 。
- 属性
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);
}
}
注釈
- TryMoveFocus(Windows.UI.Xaml.Input.FocusNavigationDirection focusNavigationDirection) と FocusManager.TryMoveFocus(FocusNavigationDirection focusNavigationDirection, FindNextElementOptions focusNavigationOptions) は、フォーカスの変更が完了する前に true (成功) を返します。
- GetFocusedElement は、非同期操作が完了するまで、新しくフォーカスされたオブジェクトを返しません。
- フォーカスを失うコントロールは 、LosingFocus イベントを 同期的に受け取りますが、非同期操作が完了するまで LostFocus を受け取りません。
- フォーカスを取得するコントロールは 、GettingFocus イベントを同期的に受け取りますが、非同期操作が完了するまで GotFocus を受け取りません。
TryFocusAsync は、アプリ プロセスで実行されている要素で呼び出されると同期的に完了します。
FindNextElement(FocusNavigationDirection, FindNextElementOptions) メソッドまたは FindNextElement(FocusNavigationDirection) メソッドを使用して、プログラムによってフォーカスを移動することもできます。 これらのメソッドは、指定したナビゲーション方向に基づいてフォーカスを受け取る要素 ( DependencyObject として) を取得します (方向ナビゲーションのみ、タブ ナビゲーションのエミュレートには使用できません)。
注意
FindNextFocusableElement は UIElement を取得するため、FindNextFocusableElement の代わりに FindNextElement メソッドを使用することをお勧めします。これは、次のフォーカス可能な要素が UIElement ( Hyperlink オブジェクトなど) でない場合は null を返します。
こちらもご覧ください
- TryMoveFocusAsync(FocusNavigationDirection)
- キーボード操作
- キーボード、ゲームパッド、リモコン、アクセシビリティ ツールのフォーカス ナビゲーション
- プログラムによるフォーカス ナビゲーション