Click here to Skip to main content
Click here to Skip to main content
Technical Blog

Tagged as

Mahhala – Fluent Ribbon Control Suite

, 12 Aug 2010 CPOL
Rate this:
Please Sign up or sign in to vote.
Fluent Ribbon Control Suite

Mahhala (isiZulu word for free or without charge) is a new series that showcases some of the cool free WPF/Silverlight controls available…

“You can learn a lot by reading other people's source code. That's the idea behind this series, "The Weekly Source Code." You can certainly become a better programmer by writing code but I think good writers become better by reading as much as they can.” - Scott Hanselman

Not many applications can claim they revolutionize software design… but somehow, office is always the ONE everyone is compared too! Take the ribbon as a example… Like it or not, it has changed the way menus are designed!!! This week we chat with the creator of the Fluent Ribbon Control Suite, one of the most complete implementations of the Office ribbon.

RG - Welcome Daniel, tell us a little about yourself?
DD - I like to develop desktop applications with interactive user interface. I derive pleasure from control development. Primarily I develop 3D and 2D desktop applications using WPF, DirectX, XNA.

RG - What is the Fluent Ribbon Control Suite?
DD - Fluent Ribbon Control Suite is a library that implements an Office-like (Microsoft® Office Fluent™ user interface) for the Windows Presentation Foundation (WPF). It provides well-customized controls such as RubbonTabControl, Backstage, Gallery, QuickAccessToolbar, ScreenTip and so on. It is bundled with the most up-to-date Office 2010 styles.

RG - How does this differ from the one available from Microsoft?
DD - Actually we haven’t even BETA (only CTP) of Microsoft’s one, so I do not know how it will be. Hmm, for example, I can say that our Ribbon does not have any strange RibbonCommand. We are relying on regular WPF commands. Fluent is very friendly to MVVM. We provide complete control suite to develop applications with Microsoft® Office Fluent™ user interface. We are very carefully following the guidelines.

If you are reading this and never used the Microsoft ribbon CTP, check out how complicated it is creating a ribbon using it:

<ribbon:RibbonWindow x:Class="WpfApplication1.MainWindow"
        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"
        Title="MainWindow" Height="350" Width="525">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto" />
            <RowDefinition Height="*" />            
        </Grid.RowDefinitions>
        <ribbon:Ribbon>
            <ribbon:RibbonTab Label="Tab">
                <ribbon:RibbonGroup>
                    <ribbon:RibbonGroup.Command>
                        <ribbon:RibbonCommand LabelTitle="Group" />
                    </ribbon:RibbonGroup.Command>
                    <ribbon:RibbonButton>
                        <ribbon:RibbonButton.Command>
                            <ribbon:RibbonCommand LabelTitle="Button" 
				Executed="RibbonCommand_Executed" />
                        </ribbon:RibbonButton.Command>                        
                    </ribbon:RibbonButton>
                </ribbon:RibbonGroup>    
            </ribbon:RibbonTab>
        </ribbon:Ribbon>
    </Grid>
</ribbon:RibbonWindow>

Why do I need all these RibbonCommands just to create this?

Well, here is the Fluent way…

<ribbon:RibbonWindow x:Class="WpfApplication1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:ribbon="clr-namespace:Fluent;assembly=Fluent"
        Title="MainWindow" Height="350" Width="525">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto" />
            <RowDefinition Height="*" />       
        </Grid.RowDefinitions>
        <ribbon:Ribbon>
            <ribbon:RibbonTabItem Header="Tab">
                <ribbon:RibbonGroupBox Header="Group">
                    <ribbon:Button Text="Button" Click="Button_Click" />
                </ribbon:RibbonGroupBox>
            </ribbon:RibbonTabItem>
        </ribbon:Ribbon>
    </Grid>
</ribbon:RibbonWindow>

Slightly easier to understand!

Oooo, and 100% Office 2010 themes… no more ugly Office 2007. Smile | :)

The other “feature” I love about the Fluent implementation is that it has support for Backstage… Here is a feature comparison:

I heard rumours that the FULL Microsoft version will be released shortly after WPF 4? We will wait and see…

Next week I chat with Ado, the creator of AvalonDock.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

Share

About the Author

rudigrobler

South Africa South Africa
No Biography provided

Comments and Discussions

 
GeneralMy vote of 3 PinmemberProJester117-Aug-10 0:23 
ns
GeneralRe: My vote of 3 Pinmemberjasonmp7-Apr-11 23:25 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

| Advertise | Privacy | Terms of Use | Mobile
Web03 | 2.8.141216.1 | Last Updated 12 Aug 2010
Article Copyright 2010 by rudigrobler
Everything else Copyright © CodeProject, 1999-2014
Layout: fixed | fluid