如何打印包含ListBox或GridView的格式化页面

时间:2013-09-09 09:12:45

标签: windows-8 windows-runtime microsoft-metro windows-store-apps winrt-xaml

使用WinRT打印文档:

1)如果有更多数据或要在格式化页面中打印的文本数据,请继续跟踪。

这可以使用RichTextBlock和RichTextBlockOverflow完成,如下所示:


<RichTextBlock Foreground="Black" x:Name="textContent" FontSize="18" Grid.Row="1"  Grid.ColumnSpan="2" OverflowContentTarget="{Binding ElementName=firstLinkedContainer}" 
IsTextSelectionEnabled="True" TextAlignment="Left" FontFamily="Segoe UI" VerticalAlignment="Top" HorizontalAlignment="Left">

</RichTextBlok>

<RichTextBlockOverflow x:Name="firstLinkedContainer" OverflowContentTarget="{Binding ElementName=continuationPageLinkedContainer}" Grid.Row="2" Grid.Column="0"/>



但是如何跟踪ListBox它可能包含几页数据以便在格式化页面中打印?

假设这个格式化的XAML页面包含Grid.Row =“0”和Grid.row =“1”:

1)Grid.Row =“0”:客户信息的标题
2)Grid.Row =“1”:订单交易的正文

ListBox将被添加到Canvas对象中,Opacity =“0”
ListBox将填充本地数据库中的数据。

问题:

如果ListBox有更多数据要打印,需要什么控制才能跟踪?


<StackPanel x:Name="header" Grid.Row="0" Grid.ColumnSpan="2" Height="60"  Visibility="Collapsed">
       <StackPanel Orientation="Horizontal" >
         <RichTextBlock Foreground="Black" FontSize="20" TextAlignment="Left" FontFamily="Segoe UI">
          <Paragraph>Order- Printing test
          </RichTextBlock>
       </StackPanel>
 </StackPanel>

<StackPanel x:Name="Body" Grid.Row="1" Margin="100,30,106,148">

   <ListBox Height="500" x:Name="Lbx1" Margin="30,3,84,0">
      <ListBox.ItemTemplate>
         <DataTemplate>
             <StackPanel Orientation="Horizontal">

                   <TextBlock FontSize="20" Margin="10,10,30,10">
                    <Run Text="name : "/><Run Text="{Binding ItemName}" />
                   </TextBlock>

                   <TextBlock FontSize="20" Margin="30,10,10,10">
                    <Run Text="code : "/> <Run Text="{Binding ItemCode}" />
                    </TextBlock>

                    <TextBlock FontSize="20" Margin="10">
                     <Run Text="Price : "/> <Run Text="{Binding Price}" />
                    </TextBlock>

                   <TextBlock FontSize="20" Margin="10">
                    <Run Text="Quantity : "/> <Run Text="{Binding Quantity}" />
                   </TextBlock>
              </StackPanel>

            </DataTemplate>
        </ListBox.ItemTemplate>
     </ListBox>            

</StackPanel>

0 个答案:

没有答案