C# MigraDoc-表格边框,但无单元格/行/列边框
我正在努力实现似乎应该是直截了当的东西,但运气不太好。我需要一个MigradDoc表,只使用表边框进行渲染,不包括中间的所有单元格: 我注意到了这篇帖子上的评论: 有用的信息,但我还没有能够实现一个完整的修复? 在将表添加到节之前,我运行了以下代码:C# MigraDoc-表格边框,但无单元格/行/列边框,c#,migradoc,C#,Migradoc,我正在努力实现似乎应该是直截了当的东西,但运气不太好。我需要一个MigradDoc表,只使用表边框进行渲染,不包括中间的所有单元格: 我注意到了这篇帖子上的评论: 有用的信息,但我还没有能够实现一个完整的修复? 在将表添加到节之前,我运行了以下代码: table.Borders.Visible = true; for (int i = 0; i < table.Rows.Count - 2; i++) { tabl
table.Borders.Visible = true;
for (int i = 0; i < table.Rows.Count - 2; i++)
{
table.Rows[i].Borders.Bottom.Visible = false;
}
table.Borders.Visible=true;
对于(int i=0;i
一开始它似乎很管用。。。直到我在下一页看到一张桌子。。。很明显,底行边框仅为最底行呈现,不考虑表中的分页符
肯定有更好的方法吗?编辑:我很感激这是一个老问题,但万一有人到这里来寻找答案
尝试使用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
之后,选项是边框样式、边框宽度、边框颜色
然后,您可以像往常一样为每个单元格或行添加任何额外的单独边框,以便按照示例在标题行底部添加边框
headerRow.Borders.Bottom.Width = 0.2;
headerRow.Borders.Bottom.Color = Colors.Black;
选项2:动态表格内容
如果由于内容是动态的,您不知道表中有多少行或列,则可以使用this.table.columns.Count
和this.table.rows.Count
设置SetEdge中的前四个数字,例如:
table.SetEdge(0, 0, this.table.Columns.Count, this.table.Rows.Count, Edge.Box, BorderStyle.Single, 1, Colors.Black);
参考资料
有关更多信息,请参阅此帖子:
这里还有MigraDoc示例(搜索SetEdge):