日期:2014-05-17  浏览次数:20959 次

如何编译时不内嵌XAML文件
本帖最后由 ZIP_xG 于 2013-04-30 18:55:47 编辑
XAML文件在编译时会嵌入到程序集中
在自动生成的代码中使用的Uri是"/程序集名;component/xxx.xaml"
能不能不内嵌入程序集,直接放在输出文件夹呢?
这样可以不重新编译,直接修改xaml文件就可以改出效果。

------解决方案--------------------
首先可以确定一点,使用XamlReader.Load肯定是不可以的,别指望那个会智能到将事件处理函数一起给Load出来。
然后就是你的需求,由于XAML的信息量非常庞大,因此你要后期加载就需要先学会自己解析xaml,解析后通过后台代码添加其中的各个节点内容。微软给的XamlReader.Load会过滤掉所有事件处理函数,后台绑定的方法都无法还原,因此只能用在简单资源文件或自定义控件(只有布局,无后台代码)的还原上,对于窗体这类重要的角色,必定存在后台代码的情况则无法使用。