【发布时间】:2014-06-26 19:50:01
【问题描述】:
我刚开始处理现有的 VB 项目,最终用户希望能够将 WPF 窗口作为整页打印到打印机。我在 C# 中找到了这个代码示例,它在 C# 中工作得很好
Printing WPF Window to Printer and Fit on a Page
但是,当我尝试将其转换为 VB 时,我遇到了两个错误
- System.Drawing.Size 无法转换为 System.Windows.Size
- System.Drawing.Point 无法转换为 System.Windows.Point
我有点知道 Drawing.Size 和 Windows.Size 的区别是基于这个(以及其他几个)SO 线程 What is the difference between System.Drawing.Point and System.Windows.Point? 但我不知道如何以我可以的方式修改我的翻译使转换在 VB 中发生,就像它在 C# 上的工作方式一样。错误出现在 Measure(sz) 和 Arrange(new Rect(.....) 行上。
我需要做什么才能完成这项工作?
Private Sub PrintWindow()
Dim printDlg As PrintDialog = New PrintDialog()
If printDlg.ShowDialog() = True Then
Dim capabilities As System.Printing.PrintCapabilities =
printDlg.PrintQueue.GetPrintCapabilities(printDlg.PrintTicket)
Dim scale As Double = Math.Min(capabilities.PageImageableArea.ExtentWidth / ActualWidth,
capabilities.PageImageableArea.ExtentHeight / ActualHeight)
LayoutTransform = New ScaleTransform(scale, scale)
Dim sz As New Size(CInt(capabilities.PageImageableArea.ExtentWidth),
CInt(capabilities.PageImageableArea.ExtentHeight))
Measure(sz)
Arrange(New Rect(New Point(CInt(capabilities.PageImageableArea.OriginWidth),
CInt(capabilities.PageImageableArea.OriginHeight)), sz))
printDlg.PrintVisual(Me, "First Fit to Page WPF Print")
End If
End Sub
【问题讨论】: