Вам необходимо добавить ZIndex к самому содержащему ListBoxItem
.Один подход, который может работать для небольшого набора элементов, это создать новый тип ListBox
.
public class ZOrderedListBox : ListBox
{
private int _ZIndex = 0;
protected override void PrepareContainerForItemOverride(DependencyObject element, object item)
{
base.PrepareContainerForItemOverride(element, item);
Canvas.SetZIndex((UIElement)element, _ZIndex--);
}
}
Приведенное выше ZorderedListBox
назначит нисходящий ZIndex, так что более ранние элементы имеют более высокий zindex, чем более поздние. Предостережение Это упрощенное решение работает только с StackPanel
в качестве панели элементов, оно не будет работать со стандартным VirtualizingStackPanel
, что потребует большей сложности.