Доступ к ToggleButton из TreeviewItem - PullRequest
0 голосов
/ 28 января 2011

Мне нужно применить стиль к кнопке ToggleButton определенного элемента дерева.Как я могу получить доступ к ToggleButton, используя древовидный элемент?

Элемент дерева находится в контрольной шаблон.

1 Ответ

0 голосов
/ 28 января 2011

Вы можете анализировать VisualTree (с помощью VisualTreeHelper ) для TreeViewItem, пока не найдете 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 (и, вероятно, это не так)).

...