日期:2014-05-17  浏览次数:21109 次

请教关于WPF canvas打印的问题
关于打印范围的问题,废话不多说我直接上图

我需要打印红框中的内容,现在也没有问题能打印出来.
但是在A4纸上基本只占了一半的空间,也就是说我还需要再把红框中的数据增加.
但现在高度已经基本上到显示器的头了,这个程序的工作环境是800*600,所以窗口最好不超过600的高度.
那现在应该怎么样在数据增加一倍的情况下完整的打印出来呢?

下面是xaml代码

<Canvas Width="auto" x:Name="printArea" Margin="0,0,0,83">
            <TextBlock x:Name="printtitleTb" Canvas.Left="241" TextWrapping="Wrap" Text="宝华小区季度收费表" Canvas.Top="10" Width="211" Height="25" FontFamily="Microsoft YaHei" FontSize="18"/>
            <DataGrid Name="tenantsDg" BorderBrush="Black" HorizontalAlignment="Left" Width="681" AutoGenerateColumns="false" IsReadOnly="True" Height="579" Canvas.Top="40" LoadingRow="tenantsDg_LoadingRow" >
                <DataGrid.Columns>
                    <DataGridTextColumn Header="住户编号" CanUserResize="False" Width="76" Binding="{Binding Tid}"/>
                    <DataGridTextColumn Header="姓名" CanUserResize="False" Width="60" Binding="{Binding Name}"/>
                    <DataGridTextColumn Header="类型" CanUserResize="False" Width="60" Binding="{Binding Type}"/>
                    <DataGridTextColumn Header="用水量(吨)" CanUserResize="False" Width="75" Binding="{Binding Waterdosage}"/>
                    <DataGridTextColumn Header="水费" CanUserResize="False" Width="50" Binding="{Binding Watercost}"/>
                    <DataGridTextColumn Header="用电量(度)" CanUserResize="False" Width="75" Binding="{Binding Electricitydosage}"/>
                    <DataGridTextColumn Header="电费" CanUserResize="False" Width="50" Binding="{Binding Electricitycost}"/>
                    <DataGridTextColumn Header="卫生治安" CanUserResize="False" Width="70" Binding="{Binding Healthcost}"/>
                    <DataGridTextColumn Header="电梯费" CanUserResize="False" Width="53" Binding="{Binding Elevatorcost}"/>
                    <DataGridTextColumn Header="暖气费" CanUserResize="False" Width="53" Binding="{Binding Heatingcost}"/>
                    <DataGridTextColumn Header="总计" CanUserResize="False" Width="50" Binding="{Binding Total