Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MigraDoc-表格边框,但无单元格/行/列边框_C#_Migradoc - Fatal编程技术网

C# MigraDoc-表格边框,但无单元格/行/列边框

C# MigraDoc-表格边框,但无单元格/行/列边框,c#,migradoc,C#,Migradoc,我正在努力实现似乎应该是直截了当的东西,但运气不太好。我需要一个MigradDoc表,只使用表边框进行渲染,不包括中间的所有单元格: 我注意到了这篇帖子上的评论: 有用的信息,但我还没有能够实现一个完整的修复? 在将表添加到节之前,我运行了以下代码: table.Borders.Visible = true; for (int i = 0; i < table.Rows.Count - 2; i++) { tabl

我正在努力实现似乎应该是直截了当的东西,但运气不太好。我需要一个MigradDoc表,只使用表边框进行渲染,不包括中间的所有单元格:

我注意到了这篇帖子上的评论:

有用的信息,但我还没有能够实现一个完整的修复? 在将表添加到节之前,我运行了以下代码:

        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):