通通的成长日记 发表于 2013-1-3 15:37:29

用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]
查看完整版本: 用MVVM模式开发中遇到的零散问题总结(5)——将动态加载的可视元素保存为图片的控件,Binding刷新的时机