这个通用界面框架是基于OSGi.NET插件框架来做的,先看一下运行效果。

换个皮肤试试看!

这个界面框架是OSGi.NET面向服务插件平台的一个通用的界面插件,OSGi.NET面向服务插件框架是一个支持WinForm、Web、WPF、Silverlight,甚至是移动应用的插件平台,提供动态插件化与模块化、面向服务和插件扩展三大功能。这个界面框架插件利用OSGi.NET的扩展功能暴露了左边的导航栏和右边显示区域的扩展点,允许新开发的插件通过注册扩展的方式将自定义的界面功能注册到这个节目框架。我们来看一个使用示例,在这个示例里,我们新建了一个联系人插件。这个联系人插件通过Manifest.xml这个插件配置文件的Extension节点定义了对界面框架的扩展。如下所示。

<?xml version="1.0" encoding="utf-8"?> 
<Bundle xmlns="urn:uiosp-bundle-manifest-2.0" Name="ContactsPlugin" SymbolicName="ContactsPlugin" Version="1.0.0.0" InitializedState="Active"> 
  <Activator Type="ContactsPlugin.Activator" Policy="Immediate" /> 
  <Runtime> 
    <Assembly Path="bin\ContactsPlugin.dll" Share="false" /> 
    <Dependency BundleSymbolicName="UIShell.DbManagerService" Resolution="Mandatory" /> 
  </Runtime> 
  <!-- 定义界面功能的扩展,将自定义的两个窗体注册到界面框架 --> 
  <Extension Point="UIShell.Applications"> 
    <Application Title="ContactsPlugin" ToolTip="ContactsPlugin" Icon="ContactsPlugin.Resources.shell.png"> 
      <Menu Text="Create Contact" ToolTip="Create a contact" Icon="ContactsPlugin.Resources.shell.png" Class="ContactsPlugin.CreateContactForm" /> 
      <Menu Text="View Contacts" ToolTip="View all contacts" Icon="ContactsPlugin.Resources.shell.png" Class="ContactsPlugin.ContactsForm" /> 
    </Application> 
  </Extension> 
  <!-- 定义一个数据源,从而来使用轻量级ORM数据访问服务 --> 
  <Extension Point="UIShell.DataSources"> 
    <DataSource Name="Default" 
                ConnectionString="data source='{BundleLocation}\App_Data\Contact.sdf';" 
                ProviderName="Microsoft.SqlServerCe.Client.3.5" 
                Description="Contact data source." /> 
  </Extension> 
</Bundle>

运行插件项目后,你可以发现这个联系人管理应用便显示在左边的导航区域,一旦点击导航菜单,便在右边显示了注册的窗体。

有关界面框架的使用,你可以访问:http://www.iopenworks.com/Products/ProductDetails/Introduction?proID=8

有关联系人插件的介绍、开发教程、源码和部署文件,你可以访问:http://www.iopenworks.com/Products/ProductDetails/Introduction?proID=20

发布一个免费漂亮的仿Outlook风格、支持换肤的通用界面框架相关推荐

  1. 【WAX链游】发布一个免费开源的Alien Worlds【外星世界】合约脚本TLM

    前言 <链游Farmers World[农民世界]爆火,发布一个免费开源的脚本> 在之前的文章中,我们分享了一个开源的农民世界(Farmers World)脚本 [OpenFarmer]: ...

  2. 链游Farmers World【农民世界】爆火,发布一个免费开源的辅助挂机脚本

    初衷 <GameFi爆火,[农民世界]崛起,浅谈链游辅助脚本开发思路> https://blog.csdn.net/CharlesSimonyi/article/details/12141 ...

  3. 【WAX链游】发布一个免费开源的MiningNetwork合约脚本BTK

    前言 挖矿网络(Mining Network)官网: https://miningnetwork.io 挖矿网络(Mining Network)合约脚本:https://github.com/enco ...

  4. 发布一个免费的 Elasticsearch 多集群监控和管理平台 - 极限数据平台

    随着单个 Elasticsearch 集群规模的越来越大,大家要么在拆集群的路上,要么是已经是多套集群了, 据路边社消息,一个公司超过5个集群的情况已经变得非常普遍,而管理多个集群着实是有点痛苦,比如 ...

  5. 墨迹天气php,Android_仿墨迹天气在Android App中实现自定义zip皮肤更换,在这里谈一下墨迹天气的换肤 - phpStudy...

    仿墨迹天气在Android App中实现自定义zip皮肤更换 在这里谈一下墨迹天气的换肤实现方式,不过首先声明我只是通过反编译以及参考了一些网上其他资料的方式推测出的换肤原理, 在这里只供参考. 若大 ...

  6. 来自法国的山寨苹果系统——梨子系统PearOS,精美仿苹果风格的免费Linux操作系统(颇有iOS和OSX的神...

    我们都知道苹果 OS X 和 iOS 操作系统的设计都非常讨好人,但基本上只能购买 MacBook 或 iPhone.iPad 等设备才能体验它们.不过,今天被我发现了一款可以在PC上安装的精美仿苹果 ...

  7. 多伦多到温莎_我想要freeCodeCamp Toronto的Twitter来发布报价,所以我做了一个免费的bot来做到这一点。...

    多伦多到温莎 If you read About time, you'll know that I'm a big believer in spending time now on building ...

  8. Qt:一个简洁漂亮的高仿网易云播放器

    Qt:一个简洁漂亮的高仿网易云播放器 界面动图展示: 功能简述: 1.音乐的播放.暂停 2.音乐的上.下一曲 3.进度条显示进度.滑动条调整进度 4.音量的滑动调整 5.列表切换歌曲 6.播放.暂停的 ...

  9. 免费发布一个网站(保姆级图文教程)

    利用GitHub Pages发布一个网页 第一步:注册一个github账户 访问官网 点这两个都可以注册 根据提示输入一些信息,然后创建账户: 然后你会收到一封邮件,输入验证码或是打开邮件的验证连接后 ...

最新文章

  1. GitHub开源城市结构公交路线数据可视化
  2. 由于找不到appvisvsubsystems32.dll_去固始张街逛一逛,以后可能看不到了......
  3. c# 图片加图片水印、文字水印和图片文字水印
  4. 【Windows】如何判断当前鼠标是否按下左键或右键
  5. 百联OJ:2723:不吉利日期
  6. Java黑皮书课后题第2章:2.3(将英尺转化为米)编写程序,读入英尺数,将其转换为米数并显示结果。1英尺等于0.305米
  7. CVE-2019-8660 iMessage 漏洞复现
  8. php最后最后再执行,php最后几个函数
  9. Java内存区域(运行时数据区域)和内存模型(JMM)
  10. 聊城市计算机专业,聊城市关于2018年下半年计算机技术与软件专业技术资格(水平)考试考务工作有关问题的通知...
  11. docker下gitlab安装配置使用
  12. python结束线程类_Python线程指南(转)
  13. 滚轮事件的防冒泡、阻止默认行为
  14. 财务系统 定制开发案例
  15. 在Ubuntu Kylin 优麒麟系统中安装 Etcher镜像烧录软件
  16. 国家示范性高职院校名单(109所)
  17. Android开发之银联工作密钥,主密钥,传输密钥(加解密图文展示)
  18. 经典题:用Java打印空心菱形
  19. Windows-端口状态含义
  20. 搜狗输入法截屏不能用了

热门文章

  1. c车模电磁循迹代码_电磁炉检修快速入门
  2. 信息学奥赛一本通(1031:反向输出一个三位数)
  3. 11(AtCoder-2649)
  4. 逆波兰表达式(信息学奥赛一本通-T1198)
  5. 多项式输出(洛谷-P1067)
  6. 信息学奥赛一本通C++语言——1068:与指定数字相同的数的个数
  7. 41 WM配置-作业-定义打印控制
  8. 11月24号,我们为“满月”庆祝
  9. Python enumerate() 函数
  10. 计算机网络(2)-数据链路层流量控制