Spread for Silverlight 允许您实现以下自定义功能,在本文中我们将展示如何设置 Spread 列头单元格的样式。
设置列头单元格样式并不是一个复杂的工作,因为ColumnHeader提供了一个DefaultStyle属性,您可以通过设置该属性来修改列头单元格的样式,下面就是实现步骤:
首先创建一个StyleInfo类型的实例,并设置以下属性:
GrapeCity.Windows.SpreadSheet.Data.StyleInfo si = new GrapeCity.Windows.SpreadSheet.Data.StyleInfo(); si.Foreground = new SolidColorBrush(Colors.Orange); si.BackGround = new SolidColorBrush(Colors.Green);
然后,将该StyleInfo实例设置给ColumnHeader的DefaultStyle属性
gcSpreadSheet1.ActiveSheet.ColumnHeader.DefaultStyle = si;
将会得到以下结果:
如果我们还想修改活跃单元格对应列头单元格的样式,比如希望实现的效果如下:
为了实现这个效果,我们需要创建一个继承于WorkSheet类的自定义的类型,代码如下:
public class MyWorksheet : Worksheet { public override StyleInfo GetActualStyleInfo(int row, int column, SheetArea sheetArea) { var style = base.GetActualStyleInfo(row, column, sheetArea); if (column == this.ActiveColumnIndex & & sheetArea == SheetArea.ColumnHeader) { style.Foreground = new SolidColorBrush(Colors.Orange); style.FontStyle = FontStyles.Italic; // Set the font style for active cell column header } return style; } }
同时,我们还需要在ActiveCell和ActiveColumn改变时重绘列头,代码如下:
void gcSpreadSheet1_EnterCell(object sender, GrapeCity.Windows.SpreadSheet.UI.EnterCellEventArgs e) { this.gcSpreadSheet1.InvalidateRows(0, 1, SheetArea.ColumnHeader); }
最终效果如下:
源码下载: