在 Excel 中有一个功能就是可以设置行和列的自适应高和宽度的功能,用户修改数据之后单元格所在行的行高和所在列的列宽会根据内容进行自动调整,本文主要讲解如何在表格控件 Spread WPF-Silverligh 中实现以上自适应功能。
我们主要是利用 Spread 的EditEnd事件和 AutoFitRow、AutoFitColumn 方法,代码如下:
public MainPage()
{InitializeComponent();// 添加 Ctrl + Enter 快捷键输入换行符的功能
this.gcSpreadSheet1.View.KeyMap.Remove(new GrapeCity.Windows.SpreadSheet.UI.KeyStroke(Key.Enter,ModifierKeys.Control));this.gcSpreadSheet1.View.KeyMap.Add(new GrapeCity.Windows.SpreadSheet.UI.KeyStroke(Key.Enter,ModifierKeys.Control),SpreadActions.InputNewLine);// 添加 Spread 编辑结束事件,并处理编辑单元格所在行的行高和所在列的列宽
this.gcSpreadSheet1.EditEnd += new EventHandler<GrapeCity.Windows.SpreadSheet.UI.EditCellEventArgs>(gcSpreadSheet1_EditEnd);#region 数据源List<CItem> list = new List<CItem>();
list.Add(new CItem(1));
list.Add(new CItem(2));
list.Add(new CItem(3));
list.Add(new CItem(4));
list.Add(new CItem(5));
list.Add(new CItem(6));
list.Add(new CItem(7));
list.Add(new CItem(8));
list.Add(new CItem(9));
list.Add(new CItem(10));
this.gcSpreadSheet1.ActiveSheet.DataSource = list;
#endregion}void gcSpreadSheet1_EditEnd(object sender, GrapeCity.Windows.SpreadSheet.UI.EditCellEventArgs e){this.gcSpreadSheet1.AutoFitRow(e.Row);
this.gcSpreadSheet1.AutoFitColumn(e.Column);
}
运行截图:
源码下载:VS2010 + Silverlight 5.0 + Spread WPF-Silverlight