使用PrintVisual将不同的图像打印为相同的图像

时间:2015-01-14 11:32:35

标签: c# wpf printing

我正在使用PrintDialog.PrintVisual()来打印我的viewmodel。为此,我在字典上使用绑定:

<Canvas xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Width="329" Height="204">
    <Image Source="{Binding Details.Properties[Imagedata].ImageStream}" Stretch="Fill" Width="95" Height="122" Canvas.Left="14" Canvas.Top="41"/>
    <Image Source="{Binding Details.Properties[Signature].ImageStream}" Stretch="Fill" Height="25" Width="100" Canvas.Left="122" Canvas.Top="143"/>
</Canvas>

如果我把这个Canvas放在我的WPF窗口上,它显示正常。但是如果我想要打印它,它会使用我第二张图像上的第一张图像。在调试器中,我在UpdateLayout之后检查了Image.Source - 两者都是正确的。下一步是PrintDialog.Printvisual(canvas, "print");输出如上所述,但每次都不一样。有时第一张图像甚至会在第二张Image中重复。

为什么会这样?

更新:我找到了一种解决方法:我搜索所有Image个元素,将ImageSource复制到MemoryStream并创建一个新的BitmapImage出来的。这不好,但它现在正常工作。如果有人能够解释,为什么会这样,那就太好了。

0 个答案:

没有答案