简介:ModernUI(MUI)是一款优秀的开源WPF界面库,为开发者提供了丰富的控件和美观的主题,助力打造现代化、用户友好的应用程序界面。
ModernUI 是一个开源的 WPF 界面库,利用它可以创建出非常酷炫的应用程序。官方示例可以从其官方网站下载并运行(注意如果是 .NET 4.0 版本的话需要声明“NET4”预编译变量以确保可以顺利编译)。这个界面框架是基于 ModernUI 实现的,在该文中我将分享所有的源码,并详细描述如何利用 ModernUI 构建一个非常通用且插件化的 WPF 开发框架。本段落按照以下四点来介绍:(1)ModernUI 简介;(2)构建通用界面框架的思路;(3)基于 ModernUI 和 OSGi.NET 的插件化界面框架实现原理及源码分析;以及(4)其它更有趣的内容。
为了使用这样的 WPF 界面,我们需要在 Window 上声明菜单和 Tab 页面。定义这些菜单时,每一个 Tab 风格页面也需要手动为菜单创建相应的元素。直接采用这种方式显然不适合团队协作开发,因为在团队中不同的人需要完成不同的功能实现,并且每个人都需要更改主界面。
我希望有一种模块化的开发方法来尽可能地复用现有资源并让程序员专注于业务逻辑的编写而无需关心 UI 的使用方式。接下来我将描述基于 ModernUI 实现的一个通用界面框架,该框架允许开发者在自己的业务模块中配置所需的显示元素。
实现思路如下:
(1)开发者可以直接创建展现其业务逻辑的页面而不必关注如何使用 ModernUI;
(2)通过简单的配置即可让开发者的功能页面出现在主界面上;
(3)整个界面框架可以完全复用,以促进代码和资源的最大化利用。
当我看到 ModernUI 这个库时,我希望能够实现一个模块化的应用程序架构。每个模块应该能够:
(1)直接显示二级菜单;
(2)通过配置展示三级菜单。
这样做带来的好处是,在开发插件的过程中无需关注界面框架;团队在协作中可以独立工作而不需要修改主界面;当有新的插件加入或已有插件被卸载时,相应的功能菜单将自动出现在界面上或消失。
最终的效果如下:几个菜单及其对应的点击内容由 DemoPlugin 和 DemoPlugin2 插件提供。随着更多插件的加载,界面上会显示更多的菜单选项;而当某个插件停止运行或者卸载后,则该插件提供的相应菜单也会消失。