使用VisualTreeHelper.GetChild() 遇到ScrollViewer时找不到child
由于界面很多要控制的控件,所以就采用了VisualTreeHelper.GetChild() 等等方法来找,根据名称来匹配。
var count = VisualTreeHelper.GetChildrenCount(element);
但是今天在界面上加了ScrollViewer后,问题出来了,上一行代码中ScrollViewer 的count始终都是0,
结果特殊处理了以下,遇到ScrollViewer,将ScrollViewer的Content去找,结果可以了。
大概可以猜到了,内容控件ContentControl,在VisualTree就是叶子节点了,内容和它本身是一个整体,
所以VisualTreeHelper.GetChildrenCount就找不到子,相比ContentControl,其他控件是挂在VisualTree上,
所以才能找到,哈哈

浙公网安备 33010602011771号