CanYou8 发表于 2016-5-16 10:50:29

C1FlexGrid的选中背景颜色和鼠标当前背景颜色设置问题

因为特殊的需求,在C1FlexGrid里,已经在一些列的内容里设置了背景颜色。所以想让选中背景颜色SelectionBackground和CursorBackground不起作用,不影响现在已经设置的背景颜色(已经设置的背景颜色不止一种颜色)。

Alice 发表于 2016-5-16 11:37:38

就如您所提到的特殊的需求,我们这里不能重现出问题。
最好有一个demo,我们可以帮你看看。

q406157290 发表于 2016-5-16 16:08:28


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

CanYou8 发表于 2016-5-16 17:05:04

q406157290 发表于 2016-5-16 16:08
不知道这个是不是你想要的效果

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

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

                _textblock.FontWeight = FontWeights.Bold;
                _textblock.Foreground = new SolidColorBrush(Color.FromRgb(153, 0, 0));
            }
            base.ApplyCellStyles(grid, cellType, range, bdr);
      }

Alice 发表于 2016-5-16 18:36:51

CanYou8 发表于 2016-5-16 17:05
是的!非常感谢!
参考您的代码,我这边在重写CellFactory的ApplyCellStyles时,先把背景色再次设置一遍 ...

非常感谢代码反馈。
也谢谢@q406157290 提供Demo,我们会有金币奖励
页: [1]
查看完整版本: C1FlexGrid的选中背景颜色和鼠标当前背景颜色设置问题