1、首先需要 下载Ribbon For WPF.目前最新的版本是Microsoft Ribbon for WPF October 2010。

下载 链接:

https://www.microsoft.com/en-us/download/details.aspx?id=11877#filelist

下载 完成后安装。

2、打开Visual Studio 2013创建WPF应用程序。添加程序集引用

"C:\Program Files (x86)\Microsoft Ribbon for WPF\V4.0\RibbonControlsLibrary.dll"

添加完成 后,将控件 程序集映射到XAML前缀

xmlns:r="clr-namespace:Microsoft.Windows.Controls.Ribbon;assembly=RibbonControlsLibrary"

再在XAML中添加功能区控件

<r:Ribbon></r:Ribbon>

在添加内容前,我们需要先了解下RibbonWindow的结构:如图

①快速访问工具栏(QuickAccessToolBar)

①快速访问工具栏(QuickAccessToolBar)

<r:Ribbon.QuickAccessToolBar>
<r:RibbonQuickAccessToolBar>
<r:RibbonButton SmallImageSource="/Images/Save.png" LargeImageSource="/Images/Save.png"
ToolTipTitle="保存" ToolTipDescription="已其他形式保存该邮件" Command="SaveAs"/>
<r:RibbonButton SmallImageSource="/Images/Undo.png" LargeImageSource="/Images/Undo.png"
ToolTipTitle="撤销" ToolTipDescription="已其他形式保存该邮件" Command="ApplicationCommands.Undo" />
<r:RibbonButton SmallImageSource="/Images/Redo.png" LargeImageSource="/Images/Redo.png"
ToolTipTitle="恢复" ToolTipDescription="已其他形式保存该邮件" Command="ApplicationCommands.Redo"/>
<r:RibbonButton SmallImageSource="/Images/attach.png" LargeImageSource="/Images/attach.png"
ToolTipTitle="附件" ToolTipDescription="已其他形式保存该邮件" x:Name="quickAttachBtn" />
</r:RibbonQuickAccessToolBar>
</r:Ribbon.QuickAccessToolBar>

这个是在窗口icon旁边的快速访问工具栏,主要是给一些比较常用的按钮使用的。

②应用程序菜单(ApplicationMenu)

<ribbon:Ribbon.ApplicationMenu>
<ribbon:RibbonApplicationMenu SmallImageSource="Images/ApplicationMenuIcon.png"
KeyTip="F">
<ribbon:RibbonApplicationMenuItem Header="Open"
Command="Open"
ImageSource="Images/Open32.png"
KeyTip="O" />
<ribbon:RibbonApplicationMenuItem Header="Save"
Command="Save"
ImageSource="Images/Save32.png"
KeyTip="S" />
<ribbon:RibbonApplicationSplitMenuItem Header="Save As"
Command="SaveAs"
ImageSource="Images/SaveAs32.png"
KeyTip="V" >
<ribbon:RibbonApplicationMenuItem Header="Rich Text document"
Command="SaveAs" CommandParameter="rtf"
ImageSource="Images/SaveAsRtf32.png"
KeyTip="R" />
<ribbon:RibbonApplicationMenuItem Header="Plain Text document"
Command="SaveAs" CommandParameter="txt"
ImageSource="Images/SaveAsTxt32.png"
KeyTip="P" />
<ribbon:RibbonApplicationMenuItem Header="Other format"
Command="SaveAs"
ImageSource="Images/SaveAs32.png"
KeyTip="O" />
</ribbon:RibbonApplicationSplitMenuItem>
<ribbon:RibbonSeparator />
<ribbon:RibbonApplicationSplitMenuItem Header="Print"
ImageSource="Images/Print32.png"
KeyTip="R" />
<ribbon:RibbonApplicationMenuItem Header="Page Setup"
ImageSource="Images/PrintSetup32.png"
KeyTip="G" />
<ribbon:RibbonApplicationMenu.FooterPaneContent>
<DockPanel LastChildFill="False">
<ribbon:RibbonButton Command="ApplicationCommands.Close"
Label="Exit"
ToolTipTitle="Exit"
SmallImageSource="Images\Exit16.png"
KeyTip="X"
DockPanel.Dock="Right"
Margin=""
BorderBrush="#B8114EAF" />
</DockPanel>
</ribbon:RibbonApplicationMenu.FooterPaneContent>
<ribbon:RibbonApplicationMenu.AuxiliaryPaneContent>
<ribbon:RibbonGallery CanUserFilter="False"
ScrollViewer.VerticalScrollBarVisibility="Auto">
<ribbon:RibbonGalleryCategory Header="Recent Documents"
Background="Transparent"
ItemsSource="{DynamicResource MostRecentFiles}">
<ribbon:RibbonGalleryCategory.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Vertical" IsItemsHost="True"/>
</ItemsPanelTemplate>
</ribbon:RibbonGalleryCategory.ItemsPanel>
</ribbon:RibbonGalleryCategory>
</ribbon:RibbonGallery>
</ribbon:RibbonApplicationMenu.AuxiliaryPaneContent>
</ribbon:RibbonApplicationMenu>
</ribbon:Ribbon.ApplicationMenu>

③选项卡(RibbonTab)和组(RibbonGroup)

<r:RibbonTab x:Name="HomeTab"
Header="Home">
<r:RibbonGroup x:Name="Group1"
Header="Group1">
<r:RibbonGroup.GroupSizeDefinitions> <r:RibbonGroupSizeDefinition> <r:RibbonControlSizeDefinition ImageSize="Large" /> <r:RibbonControlSizeDefinition ImageSize="Small" /> <r:RibbonControlSizeDefinition ImageSize="Small" /> </r:RibbonGroupSizeDefinition> </r:RibbonGroup.GroupSizeDefinitions>
<r:RibbonButton x:Name="Button3" LargeImageSource="Images\LargeIcon.png" Label="Button1" /> <r:RibbonButton x:Name="Button1"
SmallImageSource="Images\SmallIcon.png"
Label="Button3" />
<r:RibbonButton x:Name="Button2"
SmallImageSource="Images\SmallIcon.png"
Label="Button4" />
</r:RibbonGroup>
<r:RibbonGroup>
<r:RibbonButton x:Name="Button5"
LargeImageSource="Images\LargeIcon.png"
Label="Button1" Click="Button5_Click" />
<r:RibbonButton x:Name="Button6"
SmallImageSource="Images\SmallIcon.png"
Label="Button2" /> </r:RibbonGroup>
</r:RibbonTab>

要让Group符合我们的想法,先要使用GroupSizeDefinitions对Group内的布局进行设置(当然不设置也是可以的,不过当我们讲到后面的让Ribbon随着应用的大小自动调整的时候就要使用到GroupSizeDefinitions了),使用ImageSize指定对应位置控件的大小,使用IsLabelVisible对控件的Lable是否可见进行设置。

Visual Studio 2013中使用Ribbon For WPF的更多相关文章

  1. 如何在Visual Studio 2013中使用Ribbon For WPF

    1.首先需要 下载Ribbon For WPF.目前最新的版本是Microsoft Ribbon for WPF October 2010. 下载 链接: https://www.microsoft. ...

  2. 在 Visual Studio 2013 中创建 ASP.NET Web 项目(0):专题导航 [持续更新中]

    写在前面的话 随着 Visual Studio 2013 的正式推出,ASP.NET 和 Visual Studio Web 开发工具 也发布了各自的最新版本. 新版本在构建 One ASP.NET ...

  3. 在 Visual Studio 2013 中创建 ASP.NET Web 项目(1):概述 - 创建 Web 应用程序项目

    注:本文是“在 Visual Studio 2013 中创建 ASP.NET Web 项目”专题的一部分,详情参见 专题导航 . 预备知识 本专题适用于 Visual Studio 2013 及以上版 ...

  4. 在 Visual Studio 2013 中使用 Grunt, Bower 和 NPM

    在 Visual Studio 2015 中提供了对于 Grunt 和 Gulp 的内置支持,在 Visual Studio 2013 中怎么办呢?微软将 2015 中的特性作为几个独立的扩展发布出来 ...

  5. 转载:在Visual Studio 2013中管理中国特色的社会主义Windows Azure

    原文链接: http://www.pstips.net/get-azurechinacloud-settings.html 谷歌被豪迈地放弃了中国市场,微软仍旧在中国市场摸爬滚打,跪着挣钱.其中私人定 ...

  6. 在ASP.NET MVC5 及 Visual Studio 2013 中为Identity账户系统配置数据库链接及Code-First数据库迁移

    在ASP.NET MVC5 及 Visual Studio 2013 中为Identity账户系统配置数据库链接及Code-First数据库迁移 最近发布的ASP.NET MVC 5 及Visual ...

  7. 在Visual Studio 2013 中使用C++单元测试

    本文主要介绍在Visual Studio 2013中对代码进行单元测试的方法,包含了两方面的内容:对已有的Dll文件进行单元测试,以及对已有的源文件进行单元测试. 1. VS2013对DLL文件的单元 ...

  8. 在Visual Studio 2013中修改远程Git服务器的地址

    在Visual Studio 2013中克隆了远程Git服务器的代码后,可以通过下图的方式修改Git服务器的地址:

  9. Visual Studio 2013中因SignalR的Browser Link引起的Javascript错误一则

    众所周知Visual Studio 2013中有一个由SignalR机制实现的Browser Link功能,意思是开发人员可以同时使用多个浏览器进行调试,当按下IDE中的Browser Link按钮后 ...

随机推荐

  1. XNA+WPF solution worked

    Cory Petosky's website Edit 11/17/2010: While this article's XNA+WPF solution worked when I wrote it ...

  2. 北京Uber司机7月13日奖励政策更新

    各位司机朋友: 从7月13日(周一)起,奖励政策将进行调整,具体如下: 滴滴快车单单2.5倍,注册地址:http://www.udache.com/如何注册Uber司机(全国版最新最详细注册流程)/月 ...

  3. ubuntu16安装过程中的硬盘分区

    硬盘分区主要是三个区,如下图,分别是/,swap交换空间,/home,其中第一个分区/是主分区,建议至少8GB,要不ubuntu安装的时候放不下.

  4. Express 总结

    Express Express提供了一个轻量级模块,把nodejs的http功能封装在一个简单易用的接口中.Express也扩展了http模块的功能,能轻松处理服务器的路由.响应.cookie和HTT ...

  5. 「日常训练」Brackets in Implications(Codeforces Round 306 Div.2 E)

    题意与分析 稍微复杂一些的思维题.反正这场全是思维题,就一道暴力水题(B).题解直接去看官方的,很详尽. 代码 #include <bits/stdc++.h> #define MP ma ...

  6. Git版本库工作流程图想

    对照廖雪峰的教程,发现有很多难以理解的地方,画了一个图想方便以后参考 首先两个基本命令反应了版本库最本质的工作流程,后面的命令其实都基于此git add 把文件修改添加到暂存区git commit 在 ...

  7. [Clr via C#读书笔记]Cp11事件

    Cp11事件 类型之所以提供事件通知功能,是因为类型维护了一个已登记方法的列表,事件发生后,类型将通知列表登记的所有方法: 事件模型建立在委托的基础上.委托是调用回调方法的一种类型安全的方式. 设计事 ...

  8. Java抽象与接口的区别

    Java抽象与接口的区别 答案方式一.简单来说,1.接口是公开的,里面不能有私有的方法或变量,是用于让别人使用的,而抽象类是可以有私有方法或私有变量的, 2.另外,实现接口的一定要实现接口里定义的所有 ...

  9. 关于onclick和addeventlistener('click'),click的整理

    代码 $(function(){ $("#btn").click(function(){ console.log(2) }) $("#btn").click(f ...

  10. Cow Contest(最短路floyed传递闭包)

    Description N (1 ≤ N ≤ 100) cows, conveniently numbered 1..N, are participating in a programming con ...