Ribbon UI,即Ribbon用户界面,相信只要用过微软Office 2007的朋友,对它会非常熟悉吧。Ribbon UI完全能替代传统的Windows用户界面,来完成程序功能的实现,并且能极大地提高工作效率。
我在经过一段时间的研究之后,决定对不久前编写的图书管理系统加以改进,在界面上全面启用Ribbon界面。当然,我也只是非常粗略地“学习”了这个类库的使用,很多高级的功能都还不能理解。鉴于网上针对这一方面的资料比较少,而且极大部分还是老外写的,给一些向我一样的新手带来了不少麻烦,我便考虑,写下这篇“图文并茂”的学习笔记,在方便大家交流的同时,也给自己日后的复习提供参照。本文所采用的平台是Microsoft Visual Studio 2010。
我能力有限,不能保证在本文中不会出现错误,对于有讲述不到的地方,还请提出。本文主要针对新手,同时也接受老鸟拍砖~
好了,下面进入正题。首先,请看图1。这是我设计的读者信息管理界面,图2、图3和图4是这个窗体的实际运行效果。
图 1
图 2
图 3
图 4
接下来,我以“读者注册”为例,介绍Ribbon UI的主要构成(本文主要介绍ApplicationMenu、Tab和Group)。我们先来看图5
图 5
在标准的Ribbon UI设计中,整个窗体应当包含一个ApplicationMenu,若干Tab和若干Group。至于快捷启动栏QuickAccessBar,就不在本文的讲述范围之内。下面我简单介绍下射三个部分。
应用菜单(ApplicationMenu),包含了一些常用的按钮,在本案例中,我设计了图6所示的两个按钮。
图 6
标签(Tab)和组(Group),标签由若干组构成,每个组又由一些基本的Ribbon控件组成,可以说,Ribbon控件是整个Ribbon UI的基本元素。
说了这么多,下面就该讲讲如何来实现这个Ribbbon UI了。在进行Ribbon开发前,我们得获得微软Office UI的授权。点击下列网址,进入Office授权网页,如图7所示。
http://msdn.microsoft.com/en-us/office/aa973809.aspx
图 7
点击红色框选部分,用Windows Live ID 登录并填写个人信息,进入下载页面获得“WPF Ribbon Control”的下载地址。在获得RibbonControlsLibrary.dll后,我们便可以编写出具有Ribbon界面的程序了。此外,我们还可以通过下载Microsoft Ribbon for WPF来获得授权,具体的获得方法,可自行上网搜索,本文不再另外提供了。
首先,在创建了WPF Ribbon Application后,我们会发现,系统已经自动生成了程序的代码框架。在这里,所有的WPF程序,其界面都是由XMAl语言代码所生成的。
下列代码,是系统自动定义的Ribbon命名空间,主要定义了本窗体的标题、名字、图标、大小等属性,相信有一定编程基础的朋友一眼就能看懂。
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:ribbon="clr-namespace:Microsoft.Windows.Controls.Ribbon;assembly=RibbonControlsLibrary" xmlns:d=http://schemas.microsoft.com/expression/blend/2008 xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" x:Class="UserManage" Title="读者信息管理" x:Name="UserManage" Width="640" Height="480" WindowStartupLocation="CenterScreen" Icon="/ Images/Logo.ico"> ……………………………………………………
下面,我们就来实现这个ApplicationMenu。找到类似于如下的代码行。
在它的后面下面定义一个ApplicationMenu,并设置它的图标,另外又定义了两个菜单项menBack和menExit,具体代码如下:
x:Name="menBack" ImageSource="/Images/BactToMain.png"/> x:Name="menExit" ImageSource="/ Images/Exit.png"/> 接着,定义Tab和Group,下面的代码是“读者注册”的这一Tab的实现。仔细观察,会看出,总共定义了两个Group,“基本信息”和“基本操作”。 Header="读者注册"> Header="基本信息"> IsChecked="True" Name="radMale"> LargeImageSource="/Images/Reg.png" Label="注册" Height="Auto" Margin="0,5,0,-6" Content="" /> LargeImageSource="/Images/Quit.png" Label="取消" Height="Auto" Margin="0,5,0,-6" Content="" /> 讲到这里,本文也要收尾了,本文的主要目的是实现Ribbon界面,并不是具体地去为每一个控件编写相应的功能。关于Ribbon UI的应用非常广泛,本文只是粗略地介绍了它的使用方法。其实,通过安装Microsoft Visual Studio 2010旗舰版或者Microsoft Expression 4旗舰版,我们可以非常方便地实现Ribbon界面,毕竟“所见即所得”的方式更加易懂易学。 各位读者,看完了本文的讲解,您是否对于Ribbon UI的实现有了一个初步的印象了呢?最后,我附上实现“读者信息管理”窗体界面的完整代码。 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:ribbon="clr-namespace:Microsoft.Windows.Controls.Ribbon;assembly=RibbonControlsLibrary" xmlns:d=http://schemas.microsoft.com/expression/blend/2008 xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" x:Class="UserManage" Title="读者信息管理" x:Name="UserManage" Width="640" Height="480" WindowStartupLocation="CenterScreen" Icon="/ Images/Logo.ico"> x:Name="menBack" ImageSource="/Images/BactToMain.png"/> x:Name="menExit" ImageSource="/ Images/Exit.png"/> Header="读者注册"> Header="基本信息"> IsChecked="True" Name="radMale"> LargeImageSource="/Images/Reg.png" Label="注册" Height="Auto" Margin="0,5,0,-6" Content="" /> LargeImageSource="/Images/Quit.png" Label="取消" Height="Auto" Margin="0,5,0,-6" Content="" /> Header="读者信息查询"> LargeImageSource="/ Images/ReaderSearch.png" Label="查询" Height="Auto" Margin="0,5,0,-6" Content="" /> LargeImageSource="/ UserInfoAlert.png" Label="修改读者信息" Height="Auto" Margin="0,5,0,-6" /> Header="读者注销"> Header="基本信息"> LargeImageSource="/Images/Exit.png" Label="注销¨²" Height="Auto" Margin="0,5,0,-6" Content="" /> LargeImageSource="/Images/Quit.png" Label="取销¨²" Height="Auto" Margin="0,5,0,-6" Content="" /> 2011年4月22日星期五