使用 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>
</列表框>
</堆栈面板>