这个是您绘制paint方法中计算的错误,自定义单元格级别paint方法是直接调用底层canvas去绘制的,是完全按照您的设置来绘制,您设置的X坐标是这样的,所以绘制肯定会超出。您修改为:
demoCellType.prototype.paint = function (ctx, value, x, y, w, h, style, options) {
ctx.save();
ctx.beginPath();
ctx.moveTo(x, y + h/2);
ctx.lineTo(x + fixedWidth + indent - 50, y + h/2);
ctx.stroke();
ctx.restore();
// Draw Text
arguments[2] = x + fixedWidth + indent - 50;
arguments[4] = w - fixedWidth - indent + 50 ;
GC.Spread.Sheets.CellTypes.Text.prototype.paint.apply(this, arguments);
};
另外您说的设置无用style的问题是这样的,您设置的style中style.backColor = 'White';这就导致后面绘制的时候白背景会覆盖之前的超出部分,导致解决问题的错觉。
综上所述,这个问题不是产品BUG导致,设计上就是自定义单元格的ctx是底层canvas画法去绘制,您用上面修改的方式应该没有问题了。 |