FlowDocument里面的表截断了最右边的列,为什么?

时间:2010-07-29 17:35:19

标签: wpf flowdocument flowdocumentreader

我在FlowDocument中有一个包含4列的表。我已经设置了列的宽度,但是在FlowDocumentReader中查看时,在页面模式或2页模式下,最右边的列被截断。

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

滚动模式看起来没问题: Scroll Mode http://lh3.ggpht.com/_nAfWrUnRWwQ/TFG6S0OGdeI/AAAAAAAADic/lpQPFEAhIwI/All%20Columns%20Visible.png

在页面模式下,情况有所不同。请注意,第三列的一部分和第四列的所有部分都被截断。为什么截断右边的列而不是在下一页显示它们是否有用? Page Mode http://lh4.ggpht.com/_nAfWrUnRWwQ/TFG6TIzGX7I/AAAAAAAADig/mLw1fV8-c90/truncated%20columns.png

1 个答案:

答案 0 :(得分:1)

通过将ColumnWidth设置为与PageWidth相同的值,我能够将FlowDocument显示在单个列中。我正在使用FlowDocument进行打印,结果很好。 PageWidth和PageHeight属性设置为PrintDialog所说的可打印区域。然后我设置ColumnWidth以防止在多个列中打印。

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