C# 如何在WPF中提供完整窗口的打印预览?
如何在打印完整窗口之前为其提供打印预览功能,这里是我为打印完整窗口而实现的代码 我的代码隐藏:C# 如何在WPF中提供完整窗口的打印预览?,c#,wpf,print-preview,C#,Wpf,Print Preview,如何在打印完整窗口之前为其提供打印预览功能,这里是我为打印完整窗口而实现的代码 我的代码隐藏: private void Canvas_Print_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) { PrintDialog printdlg = new PrintDialog(); MainWindow win = new MainWindow();
private void Canvas_Print_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
PrintDialog printdlg = new PrintDialog();
MainWindow win = new MainWindow();
this.Width = 350;
this.Background = Brushes.White;
panel.ScrollToTop();
panel.ScrollToLeftEnd();
win.Tag = this;
if (printdlg.ShowDialog() == true)
{
printdlg.PrintVisual(panel.Content as Visual, "MyApplication");
}
}
下面是打印预览类功能的示例
我创建了一个纸张大小的矩形(假设为8.5“11”),并将填充设置为VisualBrush
,这将呈现我的visualvisualToPrint
(在您的示例中为面板)
还将其包装成一个边框以获得类似页面的效果,并将其整体包装成一个ViewBox
以启用调整大小功能
结果
例如,我选择了一个文本框,你可以在视觉画笔中选择任何你选择的视觉效果,例如
visual=“{Binding ElementName=panel}”
你可以使用视觉画笔。但是视觉画笔是为位图这样的图像设计的。在这种情况下,它将非常有用。没有内置的功能。一个选项是使用RenderTargetBitmap,创建当前主窗口的屏幕截图(图像),并将其显示在控件中。我建议用谷歌搜索不同的选项。