关于WPF逻辑树深入探讨
2017-01-13 22:52
387 查看
WPF中的逻辑树通过VisualTreeHelp 帮助类我们可以遍历出一个逻辑树下面的所有元数
public void GetChild(DependencyObject dp, VisualTreeSchema vt)
{
int count = VisualTreeHelper.GetChildrenCount(dp);
for (int i = 0; i < count; i++)
{
FrameworkElement element = (FrameworkElement)VisualTreeHelper.GetChild(dp, i);
VisualTreeSchema node = new VisualTreeSchema() { Name = element.GetType().Name, frame = element };
vt.Nodes.Add(node);
GetChild(element, node);
}
}
public class VisualTreeSchema : INotifyPropertyChanged
{
public FrameworkElement frame { get; set; }
public VisualTreeSchema()
{
Nodes = new List<VisualTreeSchema>();
}
public List<VisualTreeSchema> Nodes { get; set; }
public string Name { get; set; }
public event PropertyChangedEventHandler PropertyChanged;
public void OnPropertyChanged(string propertyName)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
}
public void GetChild(DependencyObject dp, VisualTreeSchema vt)
{
int count = VisualTreeHelper.GetChildrenCount(dp);
for (int i = 0; i < count; i++)
{
FrameworkElement element = (FrameworkElement)VisualTreeHelper.GetChild(dp, i);
VisualTreeSchema node = new VisualTreeSchema() { Name = element.GetType().Name, frame = element };
vt.Nodes.Add(node);
GetChild(element, node);
}
}
public class VisualTreeSchema : INotifyPropertyChanged
{
public FrameworkElement frame { get; set; }
public VisualTreeSchema()
{
Nodes = new List<VisualTreeSchema>();
}
public List<VisualTreeSchema> Nodes { get; set; }
public string Name { get; set; }
public event PropertyChangedEventHandler PropertyChanged;
public void OnPropertyChanged(string propertyName)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
}
相关文章推荐
- 关于sharedpool的深入探讨(一)
- 关于sharedpool的深入探讨(三)
- 关于在浏览器中执行*.exe文件的深入探讨(z)
- iOS关于如何让<界面切换逻辑>与<数据业务逻辑>解耦的探讨
- 深入探讨WPF的ListView控件
- 关于shared pool的深入探讨(一)
- 关于shared pool的深入探讨(四)
- WPF之Binding深入探讨
- 关于shared pool的深入探讨(二)
- 关于shared pool的深入探讨(三)
- 关于sharedpool的深入探讨(二)
- 深入探讨oracle字符编码问题,关于NLS_LANG
- 关于网页宽度的深入探讨
- 关于shared pool的深入探讨
- 关于C语言指针和数组的深入探讨
- 关于sharedpool的深入探讨(六)
- 关于sharedpool的深入探讨(四)
- 关于内存对齐的探讨----深入版+对齐时的位域问题
- 关于shared pool的深入探讨
- 关于shared pool的深入探讨(六)