2011-09-29 6 views

回答

3

根據您的情況有兩種可能的解決方案(我們通常更喜歡問題中的更多細節)。

首先,您可以使用靜態方法獲取當前具有焦點的元素。然後,您可以使用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; 
} 

第二種方法是將事件處理程序添加到您的元素GotFocusLostFocus事件。您可以隨時跟蹤焦點進入或離開您的元素內的任何控制。