2009-12-24 77 views
0

一個在很多PDC文件所列的Silverlight 4個的功能是打印預覽。如何使用Silverlight 4 Beta打印預覽?

我搜索了關於如何使用這樣的例子並沒有發現至今。有沒有人得到這個工作呢?你能給我如何實現與打印預覽簡單的Web應用中的一些指針。

回答

0

我認爲,缺乏迴應,以及Hurricanepkt在他的回覆中指出的事實,Tim Heuer和其他人談論虛擬打印,如果在屏幕上顯示相同的東西,可以很容易地將其構建到您自己的定製打印預覽某些列表中列出的「打印預覽」功能實際上是人們誤解虛擬打印文檔的實際內容。

1

我還沒有看到打印預覽的任何人,但實際的打印支持,你可以控制哪些控制印刷和事件基於打印過程。

+0

http://silverlight.net/getstarted/silverlight-4-beta /有關虛擬打印視圖的討論,其中可能或可能不是打印預覽,但http://blog.stormideas.com/archive/2009/11/20/silverlight-4-beta-released- did-you-get-what-you.aspx和其他人明確談論打印預覽功能。 – colethecoder 2009-12-24 16:33:28

+0

虛擬打印視圖允許您即時創建控件,而無需將它們顯示在屏幕上...... – MarkKGreenway 2009-12-24 19:12:34

+0

嗯,我還應該提及蒂姆豪雅展示瞭如何創建虛擬打印件http://www.silverlight.net/learn/視頻/ silverlight-4-beta-videos/printing-api-basics/ – MarkKGreenway 2009-12-24 19:14:03

1

尋找過了一會兒,我發現了一種通過將一些功能我在其他項目中發現,要做到這一點,但他們用它的圖像處理。我試圖打印,它似乎工作正常。

這是如何工作的: 獲取使用WriteableBitmap的轉換爲位圖打印內容基本容器,這裏I'll用帆布:

WriteableBitmap wb = new WriteableBitmap(this.canvas1, null); 

使用該位圖作爲一個圖像源控制(可以在ScrollViewer中,甚至更好)。

this.imagePreview.Height = wb.PixelHeight; 
this.imagePreview.Width = wb.PixelWidth; 
this.imagePreview.Source = wb; 

集縮放基本單元(用於在這種情況下的1%):

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;   
     } 
+0

此解決方案完美運行。謝謝。 – 2011-11-30 21:07:32