8,735
社区成员
发帖
与我相关
我的任务
分享
<StackPanel>
<ScrollViewer Name="myscrollvier" CanContentScroll="True" VerticalScrollBarVisibility="Visible" Height="100" >
<StackPanel >
<RichTextBox Height="100" ScrollViewer.CanContentScroll="True" VerticalScrollBarVisibility="Visible" >
<FlowDocument>
<Paragraph >
<Image Source="image.JPG" />
</Paragraph>
</FlowDocument>
</RichTextBox>
</StackPanel>
</ScrollViewer>
<Button Content="Print" Width="50" Height="20" Click="btnPrint" />
</StackPanel>
private void btnPrint(object sender, RoutedEventArgs e)
{
PrintDialog printDlg = new System.Windows.Controls.PrintDialog();
if (printDlg.ShowDialog() == true)
{
System.Printing.PrintCapabilities capabilities = printDlg.PrintQueue.GetPrintCapabilities(printDlg.PrintTicket);
double scale = Math.Min(capabilities.PageImageableArea.ExtentWidth / myscrollvier.ActualWidth, capabilities.PageImageableArea.ExtentHeight /
myscrollvier.ActualHeight);
myscrollvier.LayoutTransform = new ScaleTransform(scale, scale);
Size sz = new Size(capabilities.PageImageableArea.ExtentWidth, capabilities.PageImageableArea.ExtentHeight);
myscrollvier.Measure(sz);
myscrollvier.Arrange(new Rect(new Point(capabilities.PageImageableArea.OriginWidth, capabilities.PageImageableArea.OriginHeight), sz));
printDlg.PrintVisual(myscrollvier, "打印");
}