While working on the Windows Ribbon Framework I’ve came across many repeating questions from users. So I’ve decided to write a Frequently Asked Questions post regarding the Windows Ribbon Framework and its wrapper Windows Ribbon for WinForms.
What are the supported platforms for the Windows Ribbon Framework?
The Windows Ribbon Framework is only supported on:
- Windows 7
- Windows Vista with Service Pack 2 (SP2) and Platform Update for Windows Vista
- Windows Server 2008 R2
- windows Server 2008 with SP2 and Platform Update for Windows Server 2008
Specifically, Windows XP is not supported.
What are the prerequisites for using the Windows Ribbon Framework or the Ribbon for WinForms project?
You need to work on a Windows 7 or Vista machine. And you need to install Windows 7 SDK.
Is the Windows Ribbon Framework free?
Yes, it’s free. It comes as part of the operating system (Vista and up).
What is the licensing of the Windows Ribbon Framework?
Is the license the same as other Windows controls or it is Office 2007?
Just like Windows common controls, there are no unusual licensing requirements involved when using the Windows Ribbon framework in your applications.
Is it possible to use the Windows Ribbon Framework in WinForms application?
Of course. Simply use the Windows Ribbon for WinForms library. The library includes numerous samples in C# and VB.NET.
How can I use the ribbon in a WPF application?
How many ribbon controls are out there?
Lot’s. Windows Ribbon Framework, MFC version, WPF version, Office version, SharePoint version, and many more 3rd party ribbon controls.
The "Windows Ribbon Framework" is a ribbon control provided with Windows 7 (and Windows Vista via platform update), intended to be used by native C++ developers (WIN32). It is based on COM and has a .NET WinForms wrapper.
The syntax of the ribbon XML is NOT XAML, but similar. ("XAML-like").
There is another ribbon control for MFC developers provided with Visual Studio 2008 SP1. This ribbon follows the MFC guidelines.
There is a version of a WPF Ribbon control that is provided by Microsoft for WPF developers.
Does Windows Ribbon Framework Support MDI?
The Windows Ribbon Framework does not support MDI windows and so is the ribbon wrapper library.
A Ribbon framework application must implement a custom MDI mechanism to support MDI functionality.
Can I change the ribbon in runtime? (i.e. add elements, change tabs, etc.)
Yes, you can dynamically add items to a both command and item galleries.
For more information, see the Working with Galleries topic at http://msdn.microsoft.com/en-us/library/dd742868(VS.85).aspx.
You can change the tabs by using Application Modes as described in the MSDN article at http://msdn.microsoft.com/en-us/library/dd940486(VS.85).aspx.
My ribbon-enabled application crash when I close it. Any suggestions?
Yes, If you close the application by clicking a ribbon button, you are destroying the ribbon, while you use it. This cause the crash.
Either run the close method using a timer, or don’t close the application using a ribbon button.
If you are using C++ you can simply use PostMessage instead of SendMessage to post the quit message.
Check the following blog post for more details: Crash while closing application that uses Windows Ribbon Framework
What are the requirements for the ribbon images?
Ribbon images must be in 32bpp BMP file format. no PNG and no 24bpp BMP.
However they don't really have a resolution constraint, they have recommendations
but if you provide images of the wrong size the framework will just resize them to fit.
To convert your images to 32bpp BMP you can use the tool presented in How to convert an image to 32 bit BMP.
You can find more details on working with images in a ribbon application here.
Where can I find Windows 7 Ribbon XML schema file?
Checkout the UICC.xsd file in the folder: <<C:\Program Files\Microsoft SDKs\Windows\v7.0\Bin>>
Where can I find more details on the Windows Ribbon for WinForms project?
A: In my blog. I’ve written dozens of blog posts describing the different aspects of the Windows Ribbon Framework and its wrapper library. Find them all here:
That’s it for now,