打印 – 如何制作UIElement的深层副本?

打印 – 如何制作UIElement的深层副本?,第1张

概述所以我有一个为Silverlight应用程序提供服务的打印组件.该程序中的其他模块能够发信号通知打印组件并将其传递给UIElement,然后打印组件将绘制到屏幕上.一切都很好.当我尝试 *** 作UI元素以便更好地格式化它以适合用户选择的纸张大小或任何相应的效果时,就会出现问题;似乎传入的UI元素通常与屏幕上的UI元素完全相同,并且屏幕元素会自行更改以匹配我所做的“仅打印”更改.现在,我可以手动保存以前的 所以我有一个为Silverlight应用程序提供服务的打印组件.该程序中的其他模块能够发信号通知打印组件并将其传递给UIElement,然后打印组件将绘制到屏幕上.一切都很好.当我尝试 *** 作UI元素以便更好地格式化它以适合用户选择的纸张大小或任何相应的效果时,就会出现问题;似乎传入的UI元素通常与屏幕上的UI元素完全相同,并且屏幕元素会自行更改以匹配我所做的“仅打印”更改.现在,我可以手动保存以前的值,进行更改并恢复以前的值,但是如果我有办法,在给定UI元素的情况下,它可以更容易/更健壮/更高效/更灵活元素,并自由地 *** 纵,而不用担心原始UI元素上的更改或状态.我如何以编程方式复制UI元素的实例,以便我有另一个具有相同视觉外观的实例?解决方法 我知道你可以尝试的两种方法:

将对象保存为xaml字符串并从中重新创建它.
(XamlWriter.Save和XamlReader.Parse)

将具有序列化程序的对象保存到内存流并从中重新创建 – 可能并非所有对象都标记为可序列化,因此可能是另一个选项.

它可能看起来有点多 – 但创建深度副本的方法并不多 – 而且我所知道的并不是任何标准的c#方法.

总结

以上是内存溢出为你收集整理的打印 – 如何制作UIElement的深层副本?全部内容,希望文章能够帮你解决打印 – 如何制作UIElement的深层副本?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1007439.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存