之前看了很多的WPF瀑布流布局,无奈自己太笨,多次实践都失败了,最后再cnblog中看到一篇关于WinPhone中的瀑布流布局的文章(http://www.cnblogs.com/Smallcode/archive/2012/10/19/2730810.html),受到启发,放到自己的项目中,却还是发现不少问题,没办法,实在是再找不到了,只能硬着头皮试试改了,没想到还成功了。
如题,这个修复了一些BUG,包括最大化,最小化,及快速拖动窗口时,布局界面不能及时刷新。
先看一下效果图:
自定义瀑布流控件:
// ***********************************************************************
// Assembly : ISmart
// Author : Snail
// Created : 08-13-2014
//
// Last Modified By : Snail
// Last Modified On : 08-18-2014
// ***********************************************************************
// <copyright file="CustomPanel.cs" company="">
// Copyright (c) . All rights reserved.
// </copyright>
// <summary>自定义瀑布流布局面板,在所有子项宽度都统一的情况的下,实现瀑布流布局</summary>
// ***********************************************************************
using System;
using System.Linq;
using System.Windows;
using System.Windows.Controls;
namespace ISmart.CustomControl
{
/// <summary>
/// 自定义瀑布流布局面板
/// </summary>
public class CustomPanel : Panel
{
#region 构造函数
/// <summary>
/// Initializes a new instance of the <see cref="CustomPanel"/> class.
/// </summary>
public CustomPanel()
{
//根据列数,实例化用来存放每列高度的数组
ColumnHeight = new double[ColumnCount];
}
#endregion 构造函数
/// <summary>
/// 每列的高度
/// </summary>
public static double[] ColumnHeight;
/// <summary>
/// 列数
/// </summary>
/// <value>The column count.</va