Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Silverlight 4.0 如何使用Silverlight 4 Beta打印预览版?_Silverlight 4.0_Print Preview - Fatal编程技术网

Silverlight 4.0 如何使用Silverlight 4 Beta打印预览版?

Silverlight 4.0 如何使用Silverlight 4 Beta打印预览版?,silverlight-4.0,print-preview,Silverlight 4.0,Print Preview,许多PDC文档中列出的Silverlight 4功能之一是打印预览 我搜索了一些关于如何使用它的例子,但到目前为止没有找到任何结果。有人用过这个吗?你能给我一些关于如何实现一个带有打印预览的简单web应用程序的建议吗?我没有看到打印预览,但实际的打印支持可以根据打印过程控制打印哪些控件和事件 我认为,由于缺乏回应,而且正如Hurricanepkt在其回复中指出的那样,Tim Heuer和其他人讨论了一种虚拟打印,如果在屏幕上显示相同的内容,可以很容易地将其构建到您自己的定制打印预览功能中,那么某

许多PDC文档中列出的Silverlight 4功能之一是打印预览


我搜索了一些关于如何使用它的例子,但到目前为止没有找到任何结果。有人用过这个吗?你能给我一些关于如何实现一个带有打印预览的简单web应用程序的建议吗?

我没有看到打印预览,但实际的打印支持可以根据打印过程控制打印哪些控件和事件

我认为,由于缺乏回应,而且正如Hurricanepkt在其回复中指出的那样,Tim Heuer和其他人讨论了一种虚拟打印,如果在屏幕上显示相同的内容,可以很容易地将其构建到您自己的定制打印预览功能中,那么某些列表中列出的打印预览实际上是人误解了虚拟打印文档实际上是什么。

在寻找了一段时间后,我找到了一种方法,将我在其他项目中发现的一些功能结合起来,但他们将其用于图像处理。我试过印刷,看起来效果不错

下面是它的工作原理: 使用WriteableBitmap获取打印内容转换为位图的基本容器,这里我将使用画布:

WriteableBitmap wb = new WriteableBitmap(this.canvas1, null);
使用此位图作为图像控件的源(可以在ScrollViewer中,甚至更好)

设置缩放基准单位(在这种情况下使用1%):

然后使用滑块调整缩放比例(可选)

private void vSlider\u值已更改(对象发送方,RoutedPropertyChangedEventArgs e)
{
imagePreview.Height=比例.Y*vSlider.Value;
imagePreview.Width=scale.X*vSlider.Value;
}

讨论虚拟打印视图,该视图可能是打印预览,也可能不是打印预览,但其他视图明确讨论打印预览功能。虚拟打印视图允许您动态创建控件,而无需在屏幕上实际显示控件……我还应该提一下Tim Heuer演示了如何创建虚拟打印
this.imagePreview.Height = wb.PixelHeight;
this.imagePreview.Width = wb.PixelWidth;
this.imagePreview.Source = wb;
Point scale = new Point();      

scale.X = imagePreview.Width/100d;
scale.Y = imagePreview.Height/100d;
private void vSlider_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
        {

                imagePreview.Height = scale.Y * vSlider.Value;
                imagePreview.Width = scale.X * vSlider.Value;           
        }