因为项目需要把所使用的窗体和业务完全分离开,实现动态加载,并可通过配置保证相同的业务中用不同的界面去展示,还要方便UI和业务单独更新这些繁琐的条件,就试着用动态加载的方式去加载dll中窗体所需要的样式,在网上查了好久也没找到自己想要的东西,WPF中提供的资源文件加载使用的Uri,用这个有个弊端,就是必须要知道文件的准确路径,然后通过Uri指定绝对或相对的地址进行加载资源,可我把样式单独封装在了一个dll中引用就很麻烦。

因为有可能放在执行目录下不同的文件夹中,搞了好久,身心疲惫啊

那能不能换个思路呢,我们要做的无非是动态加载带有样式的dll文件,为身份非要在执行的项目中获取到资源呢,于是又了下面的写法,仅供参考,如果有更好的方法希望告知,

1、首先建立资源文件

WPF 调用dll中的样式文件

2、在这个资源类中固定写一个类,这个类必须要知道的,因为动态创建的时候需要用到WPF 调用dll中的样式文件

3、加载这个动态库,并创建类的实例

WPF 调用dll中的样式文件

结果完全没有问题,也许换个思路就可以让你活过来了

这只是初步测试,完全可用,后期会进行封装自己想用的方法,希望对大家有帮助

相关文章: