从TreeviewItem访问ToggleButton

时间:2011-01-28 12:03:01

标签: wpf treeview wpf-controls

我需要将样式应用于特定treeviewitem的ToggleButton。 如何使用treeviewitem访问ToggleButton?

treeviewitem处于控制模板中。

非常感谢

1 个答案:

答案 0 :(得分:0)

您可以为TreeViewItem解析VisualTree(在VisualTreeHelper的帮助下),直到找到ToggleButton(第一个ToggleButton?具有特定名称的ToggleButton等),然后将其Style属性设置为您的样式想要,比如:

public void RestyleToggleButton(TreeViewItem visual, Style new_style)
{
    for (int i = 0; i < VisualTreeHelper.GetChildrenCount(visual); i++)
    {
        Visual childVisual = (Visual)VisualTreeHelper.GetChild(visual, i);
        if(childVisual is ToggleButton)
        {
            ((ToggleButton)childVisual).Style = new_style;
        }
    }
}

(如果ToggleButton不是TreeViewItem的直接子代(甚至可能不是),甚至可以递归递归)。