WPF瀑布流实现
来源:互联网 发布:芳纶纸淘宝 编辑:程序博客网 时间:2024/09/21 08:16
最近研究了一下WPF开发。
不知道WPF里有没有系统提供的瀑布流,我自己写了一个。
代码很简单
注:imageList里是图片的路径 nameList是图片名称(可以用其他的)
public event MouseButtonEventHandler imageMouseDown;// 这里有个名为ImageClick的点击事件imageMouseDown += new MouseButtonEventHandler(ImageClick);for (int i = 0; i < imageList.Count; i++){Image image = new Image();image.Width = 160;image.Height = 160;image.Source = new BitmapImage(new Uri(imageList[i], UriKind.Absolute));// 这里是让图片从左上开始排列 默认居然是center... 不知道这是什么思路image.VerticalAlignment = VerticalAlignment.Top;image.HorizontalAlignment = HorizontalAlignment.Left;// 这里记录下图片的名字 其实记录什么都可以image.Tag = nameList[i];// 让图片编号从1开始int j = i + 1;int row = 0;int column = 0;// 我默认一行四张图片 如果是最后一张图片if (j % 4 == 0){// 这里可以被整除row = j / 4;// 那肯定是最后一列的 4 % 4 = 0 所以要在这里赋值 column = 4;}// 如果是剩下三列的图else{// 这里不能整除,但实际上每够4张就该是下一行的了row = j / 4 + 1;column = j % 4;}// 我的图片宽160 高160 列间距24 行间距2image.Margin = new Thickness(24 * column + 160 * (column - 1), 80 + 2 * (row - 1) + 160 * (row - 1), 0, 0);// 打印下可以看见Console.WriteLine("j:" + j + " row:" + row + " column:" + column);// 加入页面gridMain.Children.Add(image);// 设置点击事件image.AddHandler(Image.MouseDownEvent, this.imageMouseDown);// 调整容器大小 其实拿最后一张图片调整就可以了 但谁让我懒呢……gridMain.Height = image.Margin.Top + image.Height + 10;}
补充:还有最后一点,当grid大小小于窗口大小的时候,因为默认是center,所以会整个画布下移。
最后加个判断:
if (gridMain.Height < WindowHeight) gridMain.Height = WIndowHeight;
请不要吐槽我的算法,毕竟离大神还有一个ACM的距离。其实我十分想搞算法,无奈还是一直工作了……
就是这样,喵。
如果写的哪里有什么问题,欢迎随时联系我,但是我不经常在线。
也可以在我的微博上私信我,我的微博:黑騏(骐是繁体的)
如果要转载我的文章,请署名黑骐并附上原文链接,在下先行谢过。
2016年7月30日
黑骐
0 0
- WPF瀑布流实现
- iPhone瀑布流实现
- PSCollectionView瀑布流实现
- TableView 瀑布流实现
- 瀑布流的实现
- JQ 实现瀑布流
- PSCollectionView瀑布流实现
- PSCollectionView瀑布流实现
- PSCollectionView瀑布流实现
- js实现瀑布流
- PSCollectionView瀑布流实现
- 瀑布流(UIScrollView实现)
- iOS 瀑布流实现
- js实现瀑布流
- 瀑布流简单实现
- CollectionView实现瀑布流
- Javascript实现瀑布流
- jquery实现瀑布流
- 2016秋招阿里内推面试经历
- Zephyr OS 基础篇: 搭建开发环境 hello-world
- C++11之unique_lock学习总结和代码实例
- 入门:使用Dom对xml进行curd操作
- 使用Apache DBCP连接池重构DBUtility
- WPF瀑布流实现
- 每次用eclipse打开Android的layout下的一个xml时会出现Problem Occurred
- JDBC-实例1
- tjut 4681
- Basic Math
- UPnP中Control Point的基本流程
- iOS9开始的新特性
- Machine Learning Week4 ex4.m
- phpstudy的安装0