J'ai le même problème que la question posée dans "Printing in Silverlight 4 ».
Pour contourner le problème, j'ai essayé à l'échelle de transformer la racine de mon arbre visuel avant l'impression.Comment cloner structure arborescente visuel 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;
}
maintenant au-dessus du code imprime correctement avec des visuels silverlight tenir sur un morceau de papier.
le problème est maintenant que LayoutRoot
lui-même est maintenant mis à l'échelle vers le bas sur l'écran.
La question est, est-il un moyen pour moi de créer un clone de LayoutRoot
avant d'appliquer la transformation d'échelle?
Mon rendez-vous autour est d'appliquer à nouveau la tranformation à grande échelle après l'impression, mais je voudrais savoir s'il y a un moyen de cloner l'arbre visuel
Merci, herzmeister. Je n'ai pas pensé à "effacer" la valeur du conteneur. Cela semble être une meilleure approche que de sauver ma vieille valeur d'échelle de rendu et de la re-transformer. – Sung