有时候想查看一下控件可视化树结构,去查看”C:\Program Files\Microsoft SDKs\Windows Phone\v7.1\Design“目录下的System.Windows.xaml文件。但这个文件有比较麻烦,而且那个文件里的代码又比较长,看起来很繁琐。可以使用一下代码来查看控件的可视化树结构:
/// <summary> /// 查看可视化树的结构 /// </summary> /// <param name="parent">控件</param> /// <param name="indent">初始值设置为0</param> void DumpVisualTree(DependencyObject parent, int indent) { TextBlock txtblk = new TextBlock(); // 模拟树层次结构显示结果. txtblk.Text = String.Format("{0}{1}", new string(' ', 4 * indent), parent.GetType().Name); // dumpTreeItemsControl是一个ItemsControl用于显示可视化树. dumpTreeItemsControl.Items.Add(txtblk); int numbChild = VisualTreeHelper.GetChildrenCount(parent); for (int childIndex = 0; childIndex < numbChild; childIndex++) { // 递归查找该控件的Child. DependencyObject child = VisualTreeHelper.GetChild(parent, childIndex); DumpVisualTree(child, indent + 1); } }