是否可以在没有调用Show()的窗口上使用PrintVisual

时间:2014-03-13 19:44:06

标签: c# wpf printing

我一直在阅读,但我似乎无法找到任何使用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>

1 个答案:

答案 0 :(得分:0)

只做

var printDialog = new PrintDialog();
printDialog.PrintVisual(wpfControl, "Sample Print");

它将打印到分配给它的默认打印机。如果您想要扩展它而不必调用PrintQueue方法,则需要为PrintTicket类设置PrintDialogShow

假设您有权访问您的窗口并将其命名为contentVisual

contentVisual.Measure(new Size(Double.PositiveInfinity, Double.PositiveInfinity));
contentVisual.Arrange(new Rect(contentVisual.DesiredSize));
contentVisual.UpdateLayout();

然后拨打Print