使用 WPF、C# 和选项卡式页面窗口。我正在尝试循环浏览表单上的所有控件,但使用 VisualTreeHelper 无法做到这一点。
如果我有一个带有 TabControl 的窗口,并且该选项卡控件上有三个 TabItems,那么从视觉上看,一切正常......
但是,如果我尝试使用可视化树助手,它只会根据活动的单个页面公开内容,而不是所有可能的页面。
关于如何确认所有页面上的内容的任何想法,即使一次只能“可见”一个?
我希望它是我想念的非常简单的东西......
使用 WPF、C# 和选项卡式页面窗口。我正在尝试循环浏览表单上的所有控件,但使用 VisualTreeHelper 无法做到这一点。
如果我有一个带有 TabControl 的窗口,并且该选项卡控件上有三个 TabItems,那么从视觉上看,一切正常......
但是,如果我尝试使用可视化树助手,它只会根据活动的单个页面公开内容,而不是所有可能的页面。
关于如何确认所有页面上的内容的任何想法,即使一次只能“可见”一个?
我希望它是我想念的非常简单的东西......
如果你翻看TabControl的模板,你会发现TabControl的内容只会是被选中的TabItem:
Content="{TemplateBinding TabControl.SelectedContent}"
这样做是为了优化 TabControl 的性能。由于 tabItems 中的其他控件不在视图中,因此无法在Visual tree
. 但是,它们确实存在于Logical Tree
. 此链接可能会让您入门 -探索 WPF 逻辑和可视化树
或者作为一种解决方法,请参阅此,在 TabControl 中切换选项卡时保留 Visual 树 - Persist Visual Tree