В моем приложении 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);
Это работает только тогда, когда элемент treeview, на котором должна отображаться панель стека, находится на более низком уровне иерархии. Когда древовидный элемент находится на том же уровне, он не размещается выше.
Кто-нибудь знает, как отобразить элемент treeview выше (относительно ZIndex) другой элемент treeview на том же уровне?
Заранее спасибо,
Фрэнк