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),该元素将基于指定的导航方向接收焦点(仅定向导航,不能用于模拟选项卡导航)。
注意
建议使用 FindNextElement 方法,而不是 FindNextFocusableElement
,因为 FindNextFocusableElement
检索 UIElement
,如果下一个可聚焦元素不是 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。
- 属性
示例
在这里,我们将演示如何将焦点设置为 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
(如 Hyperlink 对象),则会返回 null
)。