原文:
版权声明:本文为博主原创文章,未经博主允许可以随意转载 https://blog.csdn.net/songqingwei1988/article/details/50910590
之前将WPF Client中的各个页面拆分为一个个插件,进行开发,界面是原生的还好说,一旦统一样式,每个插件模块都来一份资源文件,就不合理了喽.
先从Style入手,做一下同步.
思路是直接将Style拆离出来,即不再主框架中,也不再插件中实现.
新建项目 :Songqw.Net.WPF.CommonStyle
新建xaml文件, 不需要xaml.cs 删掉即可~
新建CommonUI.xaml
ResourceDictionary : 资源字典出现的初衷就在于可以实现多个项目之间的共享资源,资源字典只是一个简单的XAML文档,该文档除了存储希望使用的资源之外,不做任何其它的事情。3,3,3,3
详细介绍:http://www.cnblogs.com/tianyou/archive/2012/12/07/2806835.html
到这里,资源项目完成.下面进行调用~
在主程序添加如下代码:
using System;using System.Windows;namespace Songqw.Net.WPF.Application{ ///这里要注意,确定dll文件复制到的运行目录/// App.xaml 的交互逻辑 /// public partial class App { private void Application_Startup(object sender, StartupEventArgs e) { var r = new ResourceDictionary(); r.MergedDictionaries.Add(new ResourceDictionary() { Source = new Uri("/Songqw.Net.WPF.CommonStyle;component/CommonUI.xaml", UriKind.RelativeOrAbsolute) }); Resources = r; } }}
最后,在各个插件模块中直接输入key 即可使用
最开始以为每个插件都需要加载资源字典才可以运行,实际上不是的,主需要主程序加载了资源字典,各个加载模块的插件是可以访问到主程序中的样式的.
换句话说,即时不把样式从主程序中分离出来,也是可以的.
既然能分离,还是就分离了吧,也为自动更新铺一下路.主程序尽量不更新了被.
呵呵
posted on 2018-10-21 14:00 阅读( ...) 评论( ...)