public class UIData
{
public Type ElemtType { get; set; }
public string Name { get; set; }
public int Indent { get; set; }
}
string GetDataString(List<UIData> lst)
{
System.Text.StringBuilder sb = new System.Text.StringBuilder();
foreach (var v in lst)
{
sb.AppendLine(string.Format("{0}{1}[{2}]", new string(' ', v.Indent * 4), v.ElemtType, v.Name));
}
return sb.ToString();
}
void EnumimpleVisualChild(DependencyObject element, List<UIData> lst, int indent)
{
if (element == null)
{
return;
}
lst.Add(new UIData() {
ElemtType = element.GetType(),
Name = (element is FrameworkElement) ? (element as FrameworkElement).Name : "Na",
Indent = indent}
);
int childCount = VisualTreeHelper.GetChildrenCount(element);
if (childCount == 0)
{
return;
}
for (int i = 0; i < childCount; i++)
{
DependencyObject subElement = VisualTreeHelper.GetChild(element, i);
EnumimpleVisualChild(subElement, lst, indent + 1);
}
}
List<UIData> lst = new List<UIData>();
EnumimpleVisualChild(pivotitem_index, lst, 0);//pivotitem_index是一个控件的Name
string str = Func1(lst);