反转ListBox的ListBoxItem(控件级别,不是数据的反转)
如下图:

但当往上移动时,情况则不是如此,


所以需要尝试对ListBoxItem的顺序进行反转
最后总结得到需求:将转载这些数据的条目ListBoxItem反转:
1. 这不是对数据进行了排序,而是在UI上进行排序
实现的原理是ScaleTransform:改变坐标轴的变形,不仅可以进行缩放的变形,还可以进行反转的变形
第一步:改变ItemsPanel的Template,将存放ListBoxItem的容器进行上下旋转,代码如下:
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel VerticalAlignment="Top" Orientation="Vertical">
<StackPanel.LayoutTransform>
<ScaleTransform ScaleX="1" ScaleY="-1" />
</StackPanel.LayoutTransform>
</StackPanel>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
此时运行的效果如下:

效果虽然很奇怪,但的确是上下颠倒了
然后,深入去分析一下,为什么显示的结果如此奇怪,经过分析得知,整个容器上下旋转时,ListBoxItem里的数据也跟着旋转了,
<StackPanel.LayoutTransform>
<!--ScaleX="1"表示X轴不变,ScaleY="-1"表示Y轴反转,即上下颠倒-->
<ScaleTransform ScaleX="1" ScaleY="-1" />
</StackPanel.LayoutTransform>
此时效果如下:

OK, 要的就是这个效果
由于反转后,上下的数据也切换了,如果还想让数据跟原来的保持一致,可以有以下几种方法:
(这也是反转ListBox的数据,也可以叫排序)
第一种,不用ListBox的Add()而该用Insert()方法
for (int i = 1; i <; i++)
stus.Insert(0, new Student() { Id = i, Name = "Tommy" + i }); //保证后面加入的数据都在首位
//stus.Add(new Student() { Id = i, Name = "Tommy" + i });
第二种,使用ListBox的排序方法
lst1.Items.SortDescriptions.Add(new SortDescription("Name",ListSortDirection.Descending));//“Name”为ListBoxItem对应对象的某个属性
完整的代码下载:https://yunpan.cn/cY8DSuCx5gNfh 访问密码 bd4a
反转ListBox的ListBoxItem(控件级别,不是数据的反转)的更多相关文章
- Atitit.Gui控件and面板----db数据库区----- .数据库比较同步工具 vOa
Atitit.Gui控件and面板----db数据库区----- .数据库比较同步工具 vOa 1. 咨微海信数据库应用 工具 1 2. 数据库比较工具 StarInix SQL Compare ...
- C#中向ListView控件中添加一行数据
C#中向ListView控件中添加一行数据: ,先声明一个ListViewItem: ListViewItem item = new ListViewItem(); ,添加第一列数据: item.Te ...
- CListCtrl 控件即使跟新数据,即时刷新以及属性设置
用 m_CtrItem.Update( i );来即使跟新每行的数据,因为有时用某些函数如SetItemText()来设置某一行一列的数据是,控件上面的显示数据没有即使跟新,这是就有update来跟新 ...
- ComBox、listBox、checklistBox控件
omBox控件被称为下拉组合框控件,是由System.windows.Forms.ComBox类提供的,主要作用是讲一个集合数据以组合框的形式显示给用户,当用户单击时将以下拉框显示给用户,供用户选择一 ...
- Visual Basic 2012 借助DataGridView控件将SQL server2012 数据导入到Excel 2010
摘 要: SQL Server 2012 数据和Excel 2010之间的连接和数据的传输,本篇文章主要针对的是SQL Server 2012 数据导入到Excel 2010文件中.Excel软件对 ...
- Visual Basic 2012 借助DataGridView控件将Excel 2010数据导入到SQL server 2012
(注:注释的颜色原本为绿色,在这里变为黑色,有点不便,但不会造成阅读影响.放入Visual Basic2012代码编辑器后会还原成绿色.) 摘 要:DataGridView控件作为数据传输的中介,只 ...
- 市委组织部考核项目——利用EasyUi中可编辑的DataGrid控件对多行数据进行编辑并提交
http://blog.csdn.net/cjr15233661143/article/details/19041165 市委组织部考核项目中需要录入原始数据,拿开发区的数据录入举例说明,见下图,需要 ...
- Repeater 控件 当数据源没有数据的时候显示 暂无数据 的两种方式
第一种:现在前台给Repeater控件外面的div加一个runat=”server” 然后在cs后台判断数据源是否为空, 是的话就修改这个前台div的InnerText或者是InnerHtml 即可 ...
- 向RichTextBox控件不停的AppendText数据时,如何把光标的焦点始终显示到最后
上面是csdn上的一个网友的问题,我的一个实现如下://让文本框获取焦点this.richTextBoxInfo.Focus();//设置光标的位置到文本尾this.richTextBoxInfo.S ...
随机推荐
- opencpu
前端通过它调用后端的R语言,对R函数进行一个封装. 网址:https://github.com/jeroenooms/opencpu.js 使用的是opencpu-0.5.js,对它进行了修改. 1. ...
- Android-Xml文件生成,Xml数据格式写入
在上一篇博客,Android-XML格式描述,介绍来XML在Android中的格式: 生成xml文件格式数据,Android提供了Xml.newSerializer();,可以理解为Xml序列化: 序 ...
- cassandra集群缩容与剔除问题节点
今天在操作cassandra集群数据迁移时发生了一些意料之外的事情,服务器迁移前与迁移后同样为5台,但是不知道是什么原因导致的,迁移过后的节点居然多出了一台cassandra节点,个人瞬间感觉莫名其妙 ...
- JAX_WS 2.2 规范的webservices客户端实现(Axis2,Cxf)
为了对接之前老版本的接口,折腾了好几个小时. 主要是目前我的程序采用的是axis2的jax_rpc方式发布webservices服务,用这种服务的客户端,去调用老版本的jax_ws 2.2的接口,会报 ...
- Mac iTerm2登陆CentOS提示warning: setlocale: LC_CTYPE: cannot change locale (UTF-8): No such file or directory
[报错原因]:没有utf-8这个语系(没添加语言_国名前缀),LC_ALL又没设定值. 服务端解决方法: 在远程系统上, /etc/environment 加入以下两行,重新登陆即可. LANG=en ...
- HttpClient4.X发送Get请求的url参数拼接
HttpClient4.X发送Get请求的参数拼接 使用httpClient发送get请求时,请求参数可以以?key=val&key1=val1的拼接到url后面. 但是请求参数较多时,这种方 ...
- C# 创建、部署和调用WebService简单示例
webservice 可以用于分布式应用程序之间的交互,和不同程序之间的交互. 概念性的东西就不说太多,下面开始创建一个简单的webservice的例子.这里我用的是Visual Studio 201 ...
- BitAdminCore框架更新日志20180518
20180518更新内容 1.重构调整QQ登录代码,使用JObject,减少代码,增加access_token自动续期(未测试). 2.重构调整微信登录代码,使用JObject,减少代码,增加acce ...
- 用.net开发音频编辑软件
智能语音机器人软件免不了需要对语音流进行处理,主要包括语音的播放.录制.读取.保存.图形化展示和剪辑等功能.这方面专业的软件有Adobe Audition,为了方便用户使用,我用.net实现了上述功能 ...
- CSS2.1SPEC:视觉格式化模型之width属性详解(下)
本文承接CSS2.1SPEC:视觉格式化模型之width属性详解(上),继续分析CSS视觉格式化模型中width以及相关值的计算问题: 注:与上节不同,本节的demo中由于出现了float,absol ...