在默认的排序下,当将ListBoxItem往下移动时,ListBoxItem是从其他ListBoxItem的底部移动的
如下图:
如下图:
但当往上移动时,情况则不是如此,
所以需要尝试对ListBoxItem的顺序进行反转
1. 这不是对数据进行了排序,而是在UI上进行排序
实现的原理是ScaleTransform:改变坐标轴的变形,不仅可以进行缩放的变形,还可以进行反转的变形
第一步:改变ItemsPanel的Template,将存放ListBoxItem的容器进行上下旋转,代码如下:
1 <ListBox.ItemsPanel> 2 <ItemsPanelTemplate> 3 <StackPanel VerticalAlignment="Top" Orientation="Vertical"> 4 <StackPanel.LayoutTransform> 5 <ScaleTransform ScaleX="1" ScaleY="-1" /> 6 </StackPanel.LayoutTransform> 7 </StackPanel> 8 </ItemsPanelTemplate> 9 </ListBox.ItemsPanel>
此时运行的效果如下:
效果虽然很奇怪,但的确是上下颠倒了
然后,深入去分析一下,为什么显示的结果如此奇怪,经过分析得知,整个容器上下旋转时,ListBoxItem里的数据也跟着旋转了,