找回密码
 立即注册

QQ登录

只需一步,快速开始

CanYou8

银牌会员

67

主题

191

帖子

2047

积分

银牌会员

积分
2047

活字格认证微信认证勋章元老葡萄

CanYou8
银牌会员   /  发表于:2016-5-16 10:50  /   查看:4114  /  回复:4
因为特殊的需求,在C1FlexGrid里,已经在一些列的内容里设置了背景颜色。所以想让选中背景颜色SelectionBackground和CursorBackground不起作用,不影响现在已经设置的背景颜色(已经设置的背景颜色不止一种颜色)。

4 个回复

倒序浏览
Alice
社区贡献组   /  发表于:2016-5-16 11:37:38
沙发
就如您所提到的特殊的需求,我们这里不能重现出问题。
最好有一个demo,我们可以帮你看看。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
q406157290
高级会员   /  发表于:2016-5-16 16:08:28
板凳

不知道这个是不是你想要的效果

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

评分

参与人数 1金币 +999 收起 理由
Alice + 999 很给力!

查看全部评分

回复 使用道具 举报
CanYou8
银牌会员   /  发表于:2016-5-16 17:05:04
地板
q406157290 发表于 2016-5-16 16:08
不知道这个是不是你想要的效果

是的!非常感谢!
参考您的代码,我这边在重写CellFactory的ApplyCellStyles时,先把背景色再次设置一遍就好了!
  1.         public override void ApplyCellStyles(C1FlexGrid grid, CellType cellType, CellRange range, Border bdr)
  2.         {
  3.             if (cellType != CellType.Cell) return;
  4.             // 设置只读单元格的背景色
  5.             var col = grid.Columns[range.Column];
  6.             if (col.IsReadOnly)
  7.             {
  8.                 bdr.Background = _readOnlyColor; //只读背景色设置
  9.             }

  10.             if (grid.Selection.Row == range.Row)
  11.             {
  12.                 var _textblock = bdr.Child as TextBlock;
  13.                 if (null == _textblock) return;

  14.                 _textblock.FontWeight = FontWeights.Bold;
  15.                 _textblock.Foreground = new SolidColorBrush(Color.FromRgb(153, 0, 0));
  16.             }
  17.             base.ApplyCellStyles(grid, cellType, range, bdr);
  18.         }
复制代码
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2016-5-16 18:36:51
5#
CanYou8 发表于 2016-5-16 17:05
是的!非常感谢!
参考您的代码,我这边在重写CellFactory的ApplyCellStyles时,先把背景色再次设置一遍 ...

非常感谢代码反馈。
也谢谢@q406157290 提供Demo,我们会有金币奖励
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

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