MigraDoc - 表格边框但没有单元格/行/列边框

3
我正在努力实现一些看似很简单的东西,但是却没有什么好运气。我需要一个MigraDoc表格只呈现表格边框,不包括中间的所有单元格:

enter image description here

我已经按照这篇文章的评论进行了操作:

如何在MigraDoc中给表格添加边框?

这是有用的信息,但我还没有能够完全解决它?我在将表格添加到部分之前运行了以下代码:

        table.Borders.Visible = true;
        for (int i = 0; i < table.Rows.Count - 2; i++)
        {
            table.Rows[i].Borders.Bottom.Visible = false;
        }

一开始看起来好像可以胜任工作......直到我遇到了一个跨页的表格......底部行边框显然只渲染了最后一行,没有考虑到表格中途的分页。

肯定有更好的方法吧?

1个回答

2

编辑:我知道这是一个有点老的问题,但以防万一有人在这里寻找答案...

尝试使用SetEdge选项。根据您是否知道您将拥有多少表格行或列(静态内容)或者您还不知道(动态内容),有两种实现方法。

选项1:静态表格内容

首先设置您的表格,确保所有列、单元格和行都存在,然后使用以下代码向表格添加边框:

table.SetEdge(a, b, x, y, Edge.Box, BorderStyle.Single, 1, Colors.Black);

第一个四个数字 a, b, x, y 表示你想要添加边框的表格单元格,前两个数字是左上角列和行(在您的情况下,为了给整个表格加边框,这应该是 0, 0),后两个数字是右下角列和行(根据您的示例,假设标题是标题行,则为 3, 4)。
Edge.Box 之后,选项是 border style, border width, border color
然后,您可以像平常一样为每个单元格或行添加任何额外的单独边框,因此按照您的示例,在标题行底部添加边框...
headerRow.Borders.Bottom.Width = 0.2;
headerRow.Borders.Bottom.Color = Colors.Black;

选项2:动态表格内容

如果您不知道表格中有多少行或列,因为内容是动态的,那么 SetEdge 中的前四个数字可以设置为 this.table.Columns.Countthis.table.Rows.Count - 例如:

table.SetEdge(0, 0, this.table.Columns.Count, this.table.Rows.Count, Edge.Box, BorderStyle.Single, 1, Colors.Black);

参考资料

欲了解更多信息,请查看此帖子: https://forum.pdfsharp.net/viewtopic.php?f=2&t=3598

此外,在MigraDoc示例中也有(搜索SetEdge): http://pdfsharp.net/wiki/HelloMigraDoc-sample.ashx


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接