微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

以编程方式删除 FlowDocument 中表格之间的空白/空白区域 WPF

如何解决以编程方式删除 FlowDocument 中表格之间的空白/空白区域 WPF

如何在 WPF 中以编程方式删除 FlowDocument 中表格之间的空白/空白?

我创建了一个新窗口,其中有一个带有 RichTextBox 的 Grid。在每个 RichTextBox 行中,我将显示数学问题的逐步解决方案。

我有一个方法可以返回一个有 1 行和 10 列的表,我将这个表添加到 FlowDocument(最后这个 FlowDocument 到 RichTextBox.Document)〜四次。所有数据都显示无误,但最终效果不佳。换句话说,我在一个循环中添加了 4 个表(1 x 10 个单元格)。

I want remove white space marked with red lines

每个表中的数据均基于上一个表。 这是我的代码

    public Table AddRow(List<string> a)
    {
        Table tableTemp = new Table();
        tableTemp.CellSpacing = 0;

        int numberOfTable01Columns = 10;

        for (int i = 0; i < numberOfTable01Columns; i++)
        {
            tableTemp.Columns.Add(new TableColumn());
        }
        tableTemp.RowGroups.Add(new TableRowGroup()); //row Group
        tableTemp.RowGroups[0].Rows.Add(new TableRow()); //row 1

        TableRow currentRow = tableTemp.RowGroups[0].Rows[0];

        currentRow.FontSize = 15;
        currentRow.FontWeight = System.Windows.FontWeights.Bold;

        foreach (var list in a)
        {
            currentRow.Cells.Add(new TableCell(new Paragraph(new Run(list))));
        }

        for (int i = 0; i < currentRow.Cells.Count; i++)
        {
            currentRow.Cells[i].BorderBrush = Brushes.Black;
            currentRow.Cells[i].BorderThickness = new Thickness(1);
            currentRow.Cells[i].Padding = new Thickness(0);
        }
        tableTemp.Margin = new Thickness(0);
        tableTemp.Padding = new Thickness(0);

        return tableTemp;
    }

,

    public void XAMLWindowResult()
    {
        resultwindow = new Resultwindow();

        grid = new Grid();
        grid.Name = "grid1";
        ColumnDeFinition cd1 = new ColumnDeFinition();
        RowDeFinition rd1 = new RowDeFinition();

        grid.ColumnDeFinitions.Add(cd1);
        grid.RowDeFinitions.Add(rd1);

        flowDocument1 = new FlowDocument();
        foreach(var p in ProblemDataParagraph())
        {
            flowDocument1.Blocks.Add(p);
        }
        
        flowDocument1.PagePadding = new Thickness(0);

        richTextBox = new RichTextBox();
        richTextBox.Document.Blocks.Clear();
        richTextBox.FontSize = 30;

        Grid.SetRow(richTextBox,0);
        Grid.SetColumn(richTextBox,0);
    }

,

    public void ShowFinally()
    {
        richTextBox.Document = flowDocument1;
        grid.Children.Add(richTextBox);
        resultwindow.Content = grid;
        resultwindow.Show();
    }

,

    public void AddNextTable(Table a)
    {
        flowDocument1.Blocks.Add(a);
        flowDocument1.Blocks.LastBlock.Padding = new Thickness(0);
        flowDocument1.Blocks.LastBlock.Margin = new Thickness(0,

        while (counter < 6) 
        {
            StaticVariables.counterOcurrence = 0;
            for (int i = 0; i < 4; i++) //cykl 1 ok cykl 2 not
            {
                Operation1(i);
                Operation2(i);
                textResult.AddNextTable(tableResult.AddRow(tableDataList.Table1Row2(i)));
                Operation3(i);
            }
            counter++;
            textResult.Cicle();
        }
        textResult.ShowFinally();

当我向 FlowDocument 添加段落时,我可以简单地通过 Paragraph.MarginParagraph.Padding 对其进行调整。

但在表中没有人工作(table.Margin = new Thickness(0); table.Padding = new hickness(0); flowDocument1.Blocks.LastBlock.Margin = new Thickness(0,0); table.CellSpacing = 0; Negative Margin)。可能我遗漏了一些明显的想法,但有可能做到吗?

我在 c# 中没有找到关于这个的主题,只有在 xaml 中。

提前致谢!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?