设置ActiveCell单元格的列头样式

发布时间:2013/02/04 00:02 发布者:jian

返回博客中心

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);
}

 

最终效果如下:

源码下载:

C#:ActiveCellHeaderStyle_CSharp.zip (13.09 kb)

VB.NET:ActiveCellHeaderStyle_VB.zip (12.90 kb)


关于葡萄城

赋能开发者!葡萄城是专业的集开发工具、商业智能解决方案、低代码开发平台于一身的软件和服务提供商,为超过 75% 的全球财富 500 强企业提供服务。葡萄城专注控件软件领域30年,希望通过模块化的开发控件、灵活的低代码应用开发平台等一系列开发工具、解决方案和服务,帮助开发者快速响应复杂多变的业务需求,最大程度地发挥开发者的才智和潜能,让开发者的 IT 人生更从容更美好。

了解详情,请访问葡萄城官网