-
Notifications
You must be signed in to change notification settings - Fork 1
Introduction
So, here is the plan: I’ll write a series of posts regarding using the Windows Ribbon framework with .NET (Core) WinForms.
The goal: Having .Net wrappers for using Windows Ribbon Framework in WinForms applications and a set of examples of how to use each and every ribbon feature.
Development methodology I’ll develop a library that will hold all the relevant classes, interfaces and native functions.
Along with the library I will develop some sample WinForms applications that will show how to correctly use the library.
The most updated version of the code will be available on Github.
Background So, before we start to code, let’s give some background on the subject.
Definition (from MSDN): “The Windows Ribbon framework is a rich command presentation system that provides a modern alternative to the layered menus, toolbars, and task panes of traditional Windows applications."
In Office 2007 Microsoft introduced a new way to organize UI in an application. The problem with the old UI was that it wasn’t flexible enough to represent the majority of office features. (People actually kept asking for features that already existed but were hidden deep in the menus…)

[Microsoft Word 2007 Ribbon]
After the Office 2007 Ribbon turned out to be a success, many UI companies provided their own implementation for a ribbon control to be used in your application. When Microsoft realized they were onto something good they decided to supply the Ribbon feature to the general public. They have released 3 (!) Ribbons:
-
MFC version, available since Visual Studio 2008 SP1, to be used by native MFC developer
-
WPF version, integrated in .NET 4.5 and later versions, to be used by managed WPF developers
-
Windows Ribbon, available in Windows 7 and later Windows versions as a COM object, to be used by native win32 developers.
So, what about managed WinForms users? They should use the third, COM based version. So, the purpose of these posts is to give you a working example of using the Windows Ribbon framework within a WinForms application.
Why use Windows Ribbon? Note that the question I want to answer is not "Why use A ribbon control?" but "Why use THIS ribbon control?" Why not use other ribbon controls? There are dozens of Third-party controls; some of them are free.
The main reason why to use the Windows Ribbon Framework: It’s developed by Microsoft. This means:
-
Since it’s the original one, it contains ALL the features, as opposed to other free/commercial ribbon controls which always have those "not implemented" sections.
-
It has COMPLETE support and integration with Windows 7 (and later versions) UI & accessibility features. Just think about touch screen support or high DPI screens compatibility.
-
Basics
- Introduction, Background on the windows ribbon framework
- Basic Ribbon Wrapper ; Basic .NET wrappers for windows ribbon framework.
- Quickstart Tutorial
- First WinForms Ribbon Application ; How to create an empty WinForms application with ribbon support.
-
RibbonFramework Controls
- RibbonStrip ; Main class, derived from System.Windows.Forms.Control
- RibbonApplicationMenu
- RibbonButton
- RibbonCheckBox
- RibbonComboBox
- RibbonDropDownButton
- RibbonDropDownColorPicker
- RibbonDropDownGallery
- RibbonFontControl
- RibbonGroup
- RibbonHelpButton
- RibbonInRibbonGallery
- RibbonMenuGroup
- RibbonQuickAccessToolbar
- RibbonRecentItems
- RibbonSpinner
- RibbonSplitButton
- RibbonSplitButtonGallery
- RibbonTab
- RibbonTabGroup
- RibbonToggleButton
-
RibbonFramework EventArgs classes
-
RibbonFramework PropertySet classes
-
RibbonFramework classes, interfaces, enums
-
RibbonFramework features
-
RibbonFramework Samples
- ApplicationMenu with Buttons ; How to use the ribbon application menu.
- ApplicationMenu with SplitButton and DropDownButton ; How to use the ribbon application menu with ribbon split button and ribbon dropdown button controls.
- Tabs, Groups and HelpButton ; How to use ribbon tabs, groups and the ribbon help button control.
- Spinner ; How to use the ribbon spinner control.
- ComboBox ; How to use the ribbon combo box control.
- Changing Ribbon Colors ; How to change the ribbon colors.
- Working with Images ; How to work with images in the ribbon.
- DropDownGallery, SplitButtonGallery and InRibbonGallery ; How to use the ribbon drop down gallery, split button gallery and in ribbon gallery controls.
- CheckBox and ToggleButton ; How to use the ribbon check box and toggle button controls.
- DropDownColorPicker ; How to use the ribbon drop down color picker control.
- FontControl ; How to use the ribbon font control.
- ApplicationModes ; How to work with ribbon application modes.
- ContextualTabs ; How to work with ribbon contextual tabs.
- ContextPopup ; How to work with ribbon context popup.
- RecentItems ; How to work with ribbon recent items control.
- QuickAccessToolbar ; How to work with the ribbon quick access toolbar.
- SizeDefinition ; How to define custom size definitions for ribbon group elements.
- Localization ; How to localize a ribbon.
-
RibbonTools
- RibbonTools64 ; Development support for creating markup files for the Ribbon framework.
- Create a new project ; Create a WordPad sample project
- Specifying Ribbon Commands
- Designing Ribbon Views
- Preview the Ribbon
- Wrapper class RibbonItems ; An auto generated wrapper class from the ribbon markup.
- Convert Image to ARGB Bitmap
-
How to ...