2013-05-13 63 views
0

我试图从DatePicker控件中获取“PART_HeaderButton”,然后应用自定义样式。问题是我无法搜索可视化树来查找此标题按钮。日历在弹出窗口中。弹出窗口似乎创建了一个新的可视化树。如何通过弹出所有控件循环

我的问题是如何访问新生成的可视化树并执行循环搜索?

回答

0
private static IEnumerable<T> FindVisualChildren<T>(DependencyObject depObj) where T : DependencyObject 
{ 
    if (depObj != null) 
    { 
     for (int i = 0; i < VisualTreeHelper.GetChildrenCount(depObj); i++) 
     { 
      DependencyObject child = VisualTreeHelper.GetChild(depObj, i); 
      if (child != null && child is T) 
      { 
       yield return (T)child; 
      } 
      foreach (T childOfChild in FindVisualChildren<T>(child)) 
      { 
       yield return childOfChild; 
      } 
     } 
    } 
} 

这都将返回为T从您作为参数传递的传递的对象类型的列表DependencyObjects。