Fork me on GitHub
仿Outlook风格、支持换肤的通用界面框架

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

Restart

换个皮肤试试看!

image

这个界面框架是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>
复制代码

 

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

image

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

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

 

如果有更多疑问,可以加入QQ交流群:121369588。

 

Creative Commons License本文基于Creative Commons Attribution 2.5 China Mainland License发布,欢迎转载,演绎或用于商业目的,但是必须保留本文的署名道法自然(包含链接)。如您有任何疑问或者授权方面的协商,请给我留言。
posted on 2012-05-24 21:40  HackerVirus  阅读(700)  评论(0编辑  收藏  举报