【发布时间】:2020-09-08 11:10:09
【问题描述】:
我有一个自定义的 AreaBreak 渲染器,如下所示:
protected internal class CustomAreaBreakRenderer: AreaBreakRenderer
{
public Document document { get; set; }
public CustomAreaBreakRenderer(AreaBreak areaBreak, Document document) : base(areaBreak)
{
this.document = document;
}
public override IRenderer GetNextRenderer()
{
document.Add(TableFactory.CreateLogoBlock());
return new CustomAreaBreakRenderer(areaBreak, document);
}
public override void Draw(DrawContext drawContext)
{
base.Draw(drawContext);
document.Add(TableFactory.CreateContentBlock());
}
}
我已将此渲染器设置为:
var areaBreak = new AreaBreak();
var renderer = new CustomAreaBreakRenderer(areaBreak, document);
areaBreak.SetNextRenderer(renderer);
document.Add(areaBreak);
当我调试我的代码时,
GetNextRenderer() 方法正在触发,但 Draw() 未触发。
我使用了其他渲染器,例如 CustomTableRenderers 或 CustomParagraphRenderers,我一直使用相同的方法,但对于这个,我无法按预期使用渲染器..
请帮忙.. :)
注意:我试过 TableRenderer 并且它有效,这似乎只发生在 AreaBreakRenderer 中!
【问题讨论】: