使用 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 将添加到具有 Opacity="0"
的 Canvas 对象中。 ListBox 将使用本地数据库中的数据填充。
问题 :
如果 ListBox 有更多数据要打印,需要什么控件来跟踪?
<StackPanel x:Name="header" Grid.Row="0" Grid.ColumnSpan="2" Height="60" Visibility="Collapsed"> <StackPanel 方向="水平" > <RichTextBlock Foreground="Black" FontSize="20" TextAlignment="Left" FontFamily="Segoe UI"> <段落>顺序-打印测试 </RichTextBlock> </堆栈面板> </堆栈面板> <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> <数据模板> <StackPanel 方向="水平"> <TextBlock FontSize="20" Margin="10,10,30,10"> <Run Text="name : "/><Run Text="{Binding ItemName}" /> </文本块> <TextBlock FontSize="20" Margin="30,10,10,10"> <Run Text="code : "/> <Run Text="{Binding ItemCode}" /> </文本块> <TextBlock FontSize="20" Margin="10"> <Run Text="价格:"/> <Run Text="{绑定价格}" /> </文本块> <TextBlock FontSize="20" Margin="10"> <Run Text="数量:"/> <Run Text="{绑定数量}" /> </文本块> </堆栈面板> </数据模板> </ListBox.ItemTemplate> </列表框> </堆栈面板>