【发布时间】:2019-01-31 09:14:37
【问题描述】:
WPF 的 IsKeyboardFocusWithin 属性是否有 UWP 替代方案?如果没有,您将如何确定焦点是否在其内部。
我不希望手动沿着可视化树检查每个元素是否被聚焦...
【问题讨论】:
WPF 的 IsKeyboardFocusWithin 属性是否有 UWP 替代方案?如果没有,您将如何确定焦点是否在其内部。
我不希望手动沿着可视化树检查每个元素是否被聚焦...
【问题讨论】:
FocusManager.GetFocusedElement 将标识焦点元素。然后,您可以使用VisualTreeHelper.GetParent 向上走可视化树,看看它是否是您感兴趣的控件的子级。走上去比逐个节点检查整个树的子节点要轻得多。
类似:
bool IsKeyboardFocusWithin(UIElement element)
{
UIElement focused = FocusManager.GetFocusedElement() as UIElement;
while (focused != null)
{
if (focused == element)
{
return true;
}
focused = VisualTreeHelper.GetParent(focused) as UIElement;
}
return false;
}
【讨论】: