Показать TreeViewItem над его братьями и сестрами - PullRequest
0 голосов
/ 09 января 2012

Для моего приложения Silverlight 4 я использую древовидную структуру с пользовательскими элементами. Особенность этих элементов заключается в том, что они могут отображать панель стека, которая расположена на ниже самого элемента. (Я использую отрицательное поле для перемещения панели стека в нужное положение.) Проблема в том, что панель стека (или сам элемент дерева) должна быть визуально размещена «над» другими элементами дерева.

Панель стека отображается только при нажатии кнопки (переключателя) в элементе дерева, поэтому я использовал событие check / uncheck для изменения Z-значения содержащего заголовок:

// up the Z-Axis of the containing header (a button) 
Button header = VisualTreeEnumeration.FindUpVisualTree<Button>(sender as MultiImageToggleButton);
header.SetValue(Canvas.ZIndexProperty, 1);

Это работает только, когда древовидное представление, что стековая панель должна отображаться выше, находится на нижнем уровне иерархии. Когда древовидный элемент находится на том же уровне, он не помещается выше.

Кто-нибудь знает, как отобразить элемент дерева выше (в отношении ZIndex), другой элемент дерева на том же уровне?

Заранее спасибо,
Frank

1 Ответ

0 голосов
/ 10 января 2012

Ответ уже лежит в вопросе "... как отобразить дерево сверху ..."!Найдите это дерево и установите ZValue:

TreeViewItem tvi = VisualTreeEnumeration.FindUpVisualTree<TreeViewItem>(sender as MultiImageToggleButton);
tvi.SetValue(Canvas.ZIndexProperty, 1);
...