用于pageframe的C#WPF VisualTree

时间:2012-10-01 16:13:11

标签: c# wpf tabcontrol visualtreehelper

使用WPF,C#和标签页窗口。我正在尝试循环遍历表单上的所有控件,但它没有使用VisualTreeHelper这样做。

如果我有一个带TabControl的窗口,并且该选项卡控件上有三个TabItems,从视觉上看,一切正常......

但是,如果我尝试使用可视化树助手,它只会根据活动的单个页面而不是所有可能的页面公开内容。

关于如何确认所有页面上的内容的任何想法,即使一次只能有一个“可见”?

我希望它很简单,我很想念......

1 个答案:

答案 0 :(得分:1)

如果查看TabControl的模板,您会发现TabControl的内容只是选定的TabItem:

Content="{TemplateBinding TabControl.SelectedContent}"

这样做是为了优化TabControl的性能。由于tabItems中的其他控件不在视图中,因此无法在Visual tree中找到。但是,它们确实存在于Logical Tree中。此链接可能会让您入门 - Exploring WPF logical and visual tree

或者作为解决方法参考,在TabControl中切换选项卡时保留Visual树 - Persist Visual Tree