使用表格控件,经常会使用到旋转文字角度的功能。使用 C1FlexGrid 控件,实现文本旋转是十分容易的,本章将阐述合并单元格旋转文字的实现方法。

选择合并单元格中的文本

首先,需要继承 CellFactory 创建自定义类。

public class myCellfactory : CellFactory
{
}

 

然后,需要重载 CreateCellContent 方法,设置 RotateTransform 角度 ,链接为 RotateTransform 类的详细说明。

public class myCellfactory : CellFactory
{
    public override void CreateCellContent(C1FlexGrid grid, Border bdr, CellRange rng)
    {
        base.CreateCellContent(grid, bdr, rng);
        var tb = bdr.Child as TextBlock;
  
        if (tb != null && rng.Column == 2 || rng.Column == 7 || rng.Column == 8)
        {
            ContentPresenter cp = (VisualTreeHelper.GetParent(tb) as ContentPresenter);
            System.Windows.Media.RotateTransform rotateTransform = new RotateTransform();
            rotateTransform.Angle = 50;
            tb.LayoutTransform = rotateTransform;
            bdr.Background = Brushes.PaleGreen;
            tb.Foreground = Brushes.Blue;
        }
    }
}

 

把自定义的 CellFactory 对象赋值给 C1FlexGrid,效果图如下:

Rotate Text in MergedRange

更详细设置请参考:

VS2010 + Studio for WPF 2014V3