У меня есть та же проблема, что и сформулированные в "Printing in Silverlight 4».
Чтобы обойти эту проблему, я попытался масштабироваться превратить корень моего визуального дерева перед печатью.Как клонировать структуру Silverlight визуального дерева
void document_PrintPage(object sender, PrintPageEventArgs e)
{
var renderScale = 1.0D;
if (LayoutRoot.ActualWidth > e.PrintableArea.Width)
renderScale = e.PrintableArea.Width/LayoutRoot.ActualWidth;
var scaleTransform = new ScaleTransform();
scaleTransform.ScaleX *= renderScale;
scaleTransform.ScaleY *= renderScale;
e.PageVisual = LayoutRoot;
e.PageVisual.RenderTransform = scaleTransform;
}
Теперь выше код правильно печатает с Silverlight визуалы уместиться на листе бумаги.
Сейчас проблема заключается в том, что LayoutRoot
сама теперь масштабируется вниз на экране.
Вопрос в том, есть ли способ создать клон LayoutRoot
перед применением преобразования масштаба?
Моя прогулка вокруг нанесения шкалы tranformation снова после печати, но я хотел бы знать, если есть способ клонировать дерево визуалов
Спасибо, herzmeister. Я не думал о фактическом «выравнивании» значения контейнера. Это похоже на лучший подход, чем мое сохранение старого значения масштаба рендеринга, а затем его преобразование. – Sung