用MVVM模式开发中遇到的零散问题总结(5)——将动态加载的可视元素保存为图片的控件,Binding刷新的时机
<div id="cnblogs_post_body">在项目开发中经常会遇到这样一种情况,就是需要将用户填写的信息排版到一张表单中,供打印或存档。这里就以保存为图片为例,比如我需要实现下面的功能:
将图片http://pic002.cnblogs.com/images/2012/340313/2012050600484810.jpg 根据用户信息保存为http://pic002.cnblogs.com/images/2012/340313/2012050600504947.jpg
总体思路
1.建个UserControl将背景设置为表单图片。
2.在姓名的位置添加Textblock控件,将Text绑定到Name属性上。
3.动态加载UserControl,再将整个UserControl可视树转化为一张图片,保存。
实现过程
关于怎么设置背景,和布局Textblock我就不多说了,相信大家都会。要注意的是,因为之后我要用XamlReader.Load()来动态加载XAML所以UserControl要把X:Class="xxx"这段给删了。
接下来直接看代码,基本每句都写了注释
需要生成图片的XAML:
<div class="cnblogs_code"><Grid > <Image Source="pack://siteoforigin:,,,/view/Print/Images/XXX.jpg" /> <TextBlock Height="88" HorizontalAlignment="Left" Margin="928,1624,0,0" Text="{Binding Name}" VerticalAlignment="Top" Width="240" FontSize="64" /> </Grid>
页:
[1]