1
키보드 초점을 얻는 방법 Silverlght의 요소 또는 시각적 트리 자식 요소는 어디에서나 사용할 수 있습니까?Silverlight에서 IsKeyboardFocusWithin
키보드 초점을 얻는 방법 Silverlght의 요소 또는 시각적 트리 자식 요소는 어디에서나 사용할 수 있습니까?Silverlight에서 IsKeyboardFocusWithin
시나리오에 따라 가능한 해결책은 두 가지가 있습니다. 일반적으로 질문에 더 자세히 설명되어 있습니다.
먼저 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
이벤트에 이벤트 핸들러를 추가하는 것입니다. 그런 다음 포커스가 요소에 입력되거나 제어를 벗어날 때마다 추적 할 수 있습니다.