大佬教程收集整理的这篇文章主要介绍了从Silverlight强制进行横向打印?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
这样可以正确旋转内容,并且所有内容都显示为拉伸页面的宽度(在本例中为高度),但底部部分正在被切断.它几乎就像显示到页面正常宽度的内容(通常是8.5“宽度),尽管它被渲染到页面的高度(11”高度).因此,2.5英寸的内容将作为页面底部的空白内容出现.
注意:我们不会将现有的视觉元素从UI中拉出来放入“页面”网格中.我们正在定义DataTemplates并将VM传递给DataContext.所有内容都被正确绑定和显示,但是对打印文档的渲染是出错的.
有没有我们遗失的东西?我们希望避免首先渲染页面的位图,但如果这是我们必须做的……
更新:基于进一步调查(并与开始处理报告的团队成员交谈),代码非常基于Pete Brown’s client side printing.我们已经扩展了一些分组和增强报告的功能,但整体布局处理是相同的引擎.
如果你看一下Pete Brown的代码,我们当前使用的差异是GetNewPage方法中的以下内容:
... this.CurrentPagenumber++; Grid pagePanel = new Grid(); LayoutTransformer layoutTransformer = new LayoutTransformer { Content = pagePanel,Tag = this.CurrentPagenumber }; if (printableArea.Height > printableArea.Width) { // printable area is in PorTrait mode. layoutTransformer.Height = printableArea.Width; layoutTransformer.Width = printableArea.Height; var transform = new CompositeTransform { Rotation = 90,TranslateX = printableArea.Width,ScaleX = 1,ScaleY = 1 }; layoutTransformer.LayoutTransform = transform; layoutTransformer.ApplyLayoutTransform(); layoutTransformer.RenderTransform = transform; } else { // printable area is in Landscape mode layoutTransformer.Height = printableArea.Height; layoutTransformer.Width = printableArea.Width; } Size pageSize = new Size(layoutTransformer.Width,layoutTransformer.Height); layoutTransformer.HorizontalAlignment = HorizontalAlignment.Stretch; layoutTransformer.VerticalAlignment = VerticalAlignment.Stretch; RowDeFinition headerRow = new RowDeFinition { Height = GridLength.Auto }; RowDeFinition itemsRow = new RowDeFinition { Height = new GridLength(1,GridUnitType.Star) }; RowDeFinition footerRow = new RowDeFinition { Height = GridLength.Auto }; pagePanel.RowDeFinitions.Add(headerRow); pagePanel.RowDeFinitions.Add(itemsRow); pagePanel.RowDeFinitions.Add(footerRow); ...@H_673_32@这非常适合自动旋转内容,但宽度仍然被切断,就像它将页面宽度仍然像肖像一样.即使我已经改变了要交换的所有测量值.似乎调用InvalidateMeasure()和InvalidateArrangement()对改变输出没有任何区别.奇怪的是,当我将ScaleX更改为大于1的值时,它会拉伸剪切的内容以填充页面的更多内容.所以它几乎就像父容器在转换之前被剪切一样,尽管代码说明不然.基本上它似乎是Shawn Wildermuth blogged about的裁剪.所以我仍然在寻找想法/解决方案……
以上是大佬教程为你收集整理的从Silverlight强制进行横向打印?全部内容,希望文章能够帮你解决从Silverlight强制进行横向打印?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。