我一直在阅读,但我似乎无法找到任何使用PrintVisual(...)打印窗口而不调用Show()的示例。有没有人可以提供帮助?如果甚至说它不可能发生,那么我可以寻找替代解决方案。
此主题:Best method to print using wpf 4 似乎很多人都参考了,但它仍然需要调用Show()。
<Window x:Class="Paymax.Printing.PrintPayAdvice"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300">
<DockPanel>
<StackPanel>
<TextBlock Text="Testing 123" />
</StackPanel>
</DockPanel>
</Window>
答案 0 :(得分:0)
只做
var printDialog = new PrintDialog();
printDialog.PrintVisual(wpfControl, "Sample Print");
它将打印到分配给它的默认打印机。如果您想要扩展它而不必调用PrintQueue
方法,则需要为PrintTicket
类设置PrintDialog
和Show
。
假设您有权访问您的窗口并将其命名为contentVisual
。
contentVisual.Measure(new Size(Double.PositiveInfinity, Double.PositiveInfinity));
contentVisual.Arrange(new Rect(contentVisual.DesiredSize));
contentVisual.UpdateLayout();
然后拨打Print