This is a migrated thread and some comments may be shown as answers.

RadDocument incorrect TableCell width

0 Answers 144 Views
RichTextBox
This is a migrated thread and some comments may be shown as answers.
Erik
Top achievements
Rank 1
Erik asked on 29 Dec 2012, 10:07 AM
When I create a table with LayoutMode = TableLayoutMode.Fixed, multiple columns and different size TableCells, the cells in the second row and onwards have incorrect widths.

When running the code below (see also the attached screenshot):
  • the widths of the cells in the first row are correct
  • the first cell in the second and third row are too wide
  • the second and fourth cell in the second and third row should be the same width, but they are not

Am I doing something wrong? Should I take some margin or border width into account when working with fixed with TableCells?

I'm using version 2012.3.1129.40

using System.Collections.Generic;
using System.Windows.Media;
using Telerik.Windows.Documents.Model;
 
namespace RadDocumentTableTest
{
    public partial class MainWindow
    {
        public MainWindow()
        {
            InitializeComponent();
 
            var document = new RadDocument();
            var section = new Section();
            section.Blocks.Add(new Paragraph());
 
            var table = new Table
            {
                LayoutMode = TableLayoutMode.Fixed,
                Style = document.StyleRepository["TableGrid"],
                PreferredWidth = new TableWidthUnit(618)
            };
 
            table.Rows.AddRange(CreateRows());
 
            section.Blocks.Add(table);
            document.Sections.Add(section);
 
            RichTextBox.Document = document;
        }
 
        private static TableCell CreateTableCell(int colSpan, double width, string text)
        {
            var cell = new TableCell
            {
                ColumnSpan = colSpan,
                PreferredWidth = new TableWidthUnit(TableWidthUnitType.Fixed, width),
            };
 
            var par = new Paragraph();
            var span = new Span
            {
                Text = text,
                FontFamily = new FontFamily("Calibri"),
                FontSize = 15
            };
 
            par.Inlines.Add(span);
            cell.Blocks.Add(par);
            return cell;
        }
 
        private static IEnumerable<TableRow> CreateRows()
        {
            var rows = new List<TableRow>();
 
            var row1 = new TableRow();
            row1.Cells.Add(CreateTableCell(1, 55, "r1c1:cs1:w55"));
            row1.Cells.Add(CreateTableCell(2, 125, "r1c2:cs2:w125"));
            row1.Cells.Add(CreateTableCell(1, 90, "r1c3:cs1:w90"));
            row1.Cells.Add(CreateTableCell(3, 348, "r1c4:cs3:w348"));
            rows.Add(row1);
 
            var row2 = new TableRow();
            row2.Cells.Add(CreateTableCell(2, 90, "r2c1:cs2:w90"));
            row2.Cells.Add(CreateTableCell(3, 219, "r2c2:cs3:w219"));
            row2.Cells.Add(CreateTableCell(1, 90, "r2c3:cs1:w90"));
            row2.Cells.Add(CreateTableCell(1, 219, "r2c4:cs1:w219"));
            rows.Add(row2);
 
            var row3 = new TableRow();
            row3.Cells.Add(CreateTableCell(2, 90, "r3c1:cs2:w90"));
            row3.Cells.Add(CreateTableCell(3, 219, "r3c2:cs3:w219"));
            row3.Cells.Add(CreateTableCell(1, 90, "r3c3:cs1:w90"));
            row3.Cells.Add(CreateTableCell(1, 219, "r3c4:cs1:w219"));
            rows.Add(row3);
 
            return rows;
        }
    }
}

No answers yet. Maybe you can help?

Tags
RichTextBox
Asked by
Erik
Top achievements
Rank 1
Share this question
or