Как использовать предварительный просмотр Silverlight 4 Beta для печати?

StackOverflow https://stackoverflow.com/questions/1957873

  •  21-09-2019
  •  | 
  •  

Вопрос

Одной из функций Silverlight 4, перечисленных во многих документах PDC, является предварительный просмотр.

Я искал примеры того, как это использовать, и пока ничего не нашел.У кого-нибудь это уже заработало?Можете ли вы дать мне несколько советов о том, как реализовать простое веб-приложение с предварительным просмотром в.

Это было полезно?

Решение 3

Я думаю, что из-за отсутствия ответов и того факта, что, как указал Hurricanepkt в своем ответе, Тим Хойер и другие говорят о виртуальной печати, которая, если отображать то же самое на экране, может быть довольно легко встроена в вашу собственную функцию предварительного просмотра печати, указанную в некоторых списках, на самом деле люди неправильно истолковывают, что такое виртуальные документы для печати на самом деле.

Другие советы

Я не видел предварительного просмотра печати ни в одном из них, кроме реальной поддержки печати, в которой вы можете контролировать, какие элементы управления печатаются, и события, основанные на процессе печати.

После недолгих поисков я нашел способ сделать это, объединив некоторые функции, которые я нашел в других проектах, но они использовали это для манипулирования изображениями.Я попробовал с печатью, и, кажется, все работает нормально.

Вот как это работает:Преобразуйте базовый контейнер для содержимого печати в растровое изображение с помощью WriteableBitmap, здесь я использую Canvas:

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;           
        }
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top