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。
- 属性
例
ここでは、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として) を取得します (方向ナビゲーションのみ、タブ ナビゲーションのエミュレートには使用できません)。
手記
FindNextFocusableElement
は UIElement
を取得するため、FindNextFocusableElement
FindNextElement メソッドを使用することをお勧めします。これは、次のフォーカス可能な要素が UIElement
でない場合に null
を返します (Hyperlink オブジェクトなど)。
こちらもご覧ください
- 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。
- 属性
例
ここでは、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として) を取得します (方向ナビゲーションのみ、タブ ナビゲーションのエミュレートには使用できません)。
手記
FindNextFocusableElement
は UIElement
を取得するため、FindNextFocusableElement
FindNextElement メソッドを使用することをお勧めします。これは、次のフォーカス可能な要素が UIElement
でない場合に null
を返します (Hyperlink オブジェクトなど)。
こちらもご覧ください
- TryMoveFocusAsync(FocusNavigationDirection)
- キーボード操作の
- キーボード、ゲームパッド、リモート コントロール、アクセシビリティ ツールのフォーカス ナビゲーション
- プログラムによるフォーカス ナビゲーション の