如何获得键盘焦点是在Silverlght元素或其可视树子元素中的任何位置?
答案 0 :(得分:3)
根据您的情况,有两种可能的解决方案(我们通常更喜欢问题中的更多细节)。
首先,您可以使用FocusManager.GetFocusedElement()
静态方法来获取当前具有焦点的元素。然后,您可以使用VisualTreeHelper
来确定元素是否与您的元素一致。我通常会使用扩展类来更轻松地使用VisualTreeHelper
。我找到了here。随着那堂课的到来。则: -
public static bool IsFocusIn(DependencyObject element)
{
DependendyObject focusedElement = FocusManager.GetFocusedElement() as DependencyObject;
if (focusedElement != null)
{
return focusedElement.Ancestors().Any(e => e == element);
}
return false;
}
第二种方法是将事件处理程序添加到元素的GotFocus
和LostFocus
事件中。然后,您可以在焦点进入或离开元素中的任何控件时进行跟踪。