2011-07-01 50 views
0

在我的WPF項目中,我有一個System.Windows.Controls.UserControl控件。如何在控件內找到控件?WPF + Controls.UserControl。如何在裏面找到控件?

+0

小心給一段具體的代碼來幫忙?根據您是想用XAML還是代碼來解決兒童問題,有許多不同的解決方法。 – jjrdk

+0

我想在服務器端代碼上做到這一點 – Tony

回答

1

在這種情況下,你可能會想走路可視化樹,像這樣的擴展方法做:

internal static T FindVisualChild<T>(this DependencyObject parent) where T : DependencyObject 
{ 
    if (parent == null) 
    { 
     return null; 
    } 

    DependencyObject parentObject = parent; 
    int childCount = VisualTreeHelper.GetChildrenCount(parent); 
    for (int i = 0; i < childCount; i++) 
    { 
     DependencyObject childObject = VisualTreeHelper.GetChild(parentObject, i); 
     if (childObject == null) 
     { 
      continue; 
     } 

     var child = childObject as T; 
     return child ?? FindVisualChild<T>(childObject); 
    } 

    return null; 
} 

它要求你知道控件的類型你正在找。