找回密码
 立即注册

QQ登录

只需一步,快速开始

xinren063

高级会员

46

主题

209

帖子

1378

积分

高级会员

积分
1378

活字格认证

xinren063
高级会员   /  发表于:2014-11-10 16:19  /   查看:5008  /  回复:3
我现在遇到部分行内容过长的情况,想问一下有没有办法可以将内容过长的字体稍微设置小一点从而使内容全显示出来,望提供方案

3 个回复

倒序浏览
Alice
社区贡献组   /  发表于:2014-11-10 17:49:00
沙发
回复 1楼xinren063的帖子

列下面有FontSize属性可以更改字体大小。
代码参考:
  1. this.c1FlexGrid1.Columns[0].FontSize = 8;
复制代码
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
xinren063
高级会员   /  发表于:2014-11-11 08:21:00
板凳
我想问通过哪种方式来判断内容过长并且设置个别单元格的字体大小
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2014-11-11 10:09:00
地板
回复 3楼xinren063的帖子

要知道字符串的长度,可以使用Graphics的MeasureString,只要指定了字体和字符串后,用这个方法就能获得一个矩形的区域,这个区域是Graphics对象用DrawString方法在空间表面绘制字符串时所要的区域。然后这个宽度和列宽对比,大的话就更改FontSize。
单元格的FontSize可以通过CellFactory实现。创建一个类继承CellFactory,重写ApplyCellStyles方法。
代码参考:
  1. flex.CellFactory = new MyCellFactory();

  2. public class MyCellFactory : CellFactory
  3.     {
  4.         public override void ApplyCellStyles(C1FlexGrid grid, CellType cellType, CellRange range, Border bdr)
  5.         {
  6.             var columnindex = range.Column;
  7.             var rowindex = range.Row;
  8.             var _textblock = bdr.Child as TextBlock;

  9.             if ((columnindex == 2) && (rowindex == 3))
  10.             {
  11.                 _textblock.FontSize = 15;
  12.             }
  13.         }
  14.     }
复制代码
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部