Таблица внутри FlowDocument усекает самые правые столбцы, почему? - PullRequest
1 голос
/ 29 июля 2010

У меня есть таблица с 4 столбцами внутри FlowDocument. Я установил ширину столбцов, но при просмотре в FlowDocumentReader, в режиме страницы или двухстраничном режиме крайний правый столбец усекается.

<FlowDocument >
<Table BorderBrush="Black" BorderThickness="1">
    <Table.Columns>
        <TableColumn Background="Red" Width="120" />
        <TableColumn Background="Green" Width="180" />
        <TableColumn Background="Blue" Width="140" />
        <TableColumn Background="Yellow" Width="140" />
    </Table.Columns>
    <TableRowGroup>
        <TableRow>
            <TableCell BorderBrush="Black" BorderThickness="1">
                <Paragraph>Row Number</Paragraph>
            </TableCell>
            <TableCell BorderBrush="Black" BorderThickness="1">
                <Paragraph>Text</Paragraph>
            </TableCell>
            <TableCell BorderBrush="Black" BorderThickness="1">
                <Paragraph>Another Column</Paragraph>
            </TableCell>
            <TableCell BorderBrush="Black" BorderThickness="1">
                <Paragraph>Yet Another Column</Paragraph>
            </TableCell>
        </TableRow>
        <TableRow>
            <TableCell BorderBrush="Black" BorderThickness="1">
                <Paragraph>1</Paragraph>
            </TableCell>
            <TableCell BorderBrush="Black" BorderThickness="1">
                <Paragraph >Lorem Ipsum is simply dummy text of the printing and typesetting industry.</Paragraph>
            </TableCell>
            <TableCell BorderBrush="Black" BorderThickness="1">
                <Paragraph>Hello World</Paragraph>
            </TableCell>
            <TableCell BorderBrush="Black" BorderThickness="1">
                <Paragraph>Where is my text?</Paragraph>
            </TableCell>
        </TableRow>
        <TableRow>
            <TableCell BorderBrush="Black" BorderThickness="1">
                <Paragraph>2</Paragraph>
            </TableCell>
            <TableCell BorderBrush="Black" BorderThickness="1">
                <Paragraph>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod ...</Paragraph>
            </TableCell>
            <TableCell BorderBrush="Black" BorderThickness="1">
                <Paragraph></Paragraph>
            </TableCell>
            <TableCell BorderBrush="Black" BorderThickness="1">
                <Paragraph></Paragraph>
            </TableCell>
        </TableRow>
        <TableRow>
            <TableCell BorderBrush="Black" BorderThickness="1">
                <Paragraph>3</Paragraph>
            </TableCell>
            <TableCell BorderBrush="Black" BorderThickness="1">
                <Paragraph>Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque</Paragraph>
            </TableCell>
            <TableCell BorderBrush="Black" BorderThickness="1">
                <Paragraph></Paragraph>
            </TableCell>
            <TableCell BorderBrush="Black" BorderThickness="1">
                <Paragraph></Paragraph>
            </TableCell>
        </TableRow>
        <TableRow>
            <TableCell BorderBrush="Black" BorderThickness="1">
                <Paragraph>4</Paragraph>
            </TableCell>
            <TableCell BorderBrush="Black" BorderThickness="1">
                <Paragraph>Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.</Paragraph>
            </TableCell>
            <TableCell BorderBrush="Black" BorderThickness="1">
                <Paragraph></Paragraph>
            </TableCell>
            <TableCell BorderBrush="Black" BorderThickness="1">
                <Paragraph></Paragraph>
            </TableCell>
        </TableRow>
        <TableRow>
            <TableCell BorderBrush="Black" BorderThickness="1">
                <Paragraph>5</Paragraph>
            </TableCell>
            <TableCell BorderBrush="Black" BorderThickness="1">
                <Paragraph>Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.</Paragraph>
            </TableCell>
            <TableCell BorderBrush="Black" BorderThickness="1">
                <Paragraph></Paragraph>
            </TableCell>
            <TableCell BorderBrush="Black" BorderThickness="1">
                <Paragraph></Paragraph>
            </TableCell>
        </TableRow>
    </TableRowGroup>
</Table>

Режим прокрутки выглядит хорошо: Режим прокрутки http://lh3.ggpht.com/_nAfWrUnRWwQ/TFG6S0OGdeI/AAAAAAAADic/lpQPFEAhIwI/All%20Columns%20Visible.png

В режиме страницы все по-другому. Обратите внимание, что часть третьего столбца и весь четвертый столбец усекаются. Почему полезно урезать столбцы справа, а не показывать их на следующей странице? Режим страницы http://lh4.ggpht.com/_nAfWrUnRWwQ/TFG6TIzGX7I/AAAAAAAADig/mLw1fV8-c90/truncated%20columns.png

1 Ответ

1 голос
/ 05 августа 2010

Мне удалось заставить FlowDocument отображаться в одном столбце, установив для ColumnWidth то же значение, что и для PageWidth. Я использую FlowDocument для печати, и это работает очень хорошо. Свойства PageWidth и PageHeight устанавливаются равными тому, что PrintDialog говорит для печати области. Затем я установил ColumnWidth, чтобы запретить печать в нескольких столбцах.

<FlowDocument PageWidth="850" PageHeight="1056" ColumnWidth="850" >
...
</FlowDocument>
...