Click here to Skip to main content
15,885,365 members
Articles / Desktop Programming / WPF

Ribbon (WPF) – ribbon:RibbonComboBox

Rate me:
Please Sign up or sign in to vote.
4.67/5 (2 votes)
16 Sep 2011CPOL 34.1K   1   6
Ribbon (WPF): ribbon:RibbonComboBox

How to Use the ribbon:RibbonCombobox

The main question is how do I retrieve the selectedItem from the ribbonComboBox The answer is in the "naming" of the XAML elements and using the correct element-properties.

Step 1

Mainwindow.xaml

XML
<wrappanel>
  <ribbon:ribboncombobox selectionboxwidth="100">
     <ribbon:ribbongallery x:name="fontsComboBox">
                SelectionChanged="RibbonGallery_SelectionChanged">
        <ribbon:ribbongallerycategory x:name="fonts" />
     </ribbon:ribbongallery>
  </ribbon:ribboncombobox>

  <ribbon:ribboncombobox selectionboxwidth="40" >
      <ribbon:ribbongallery x:name="fontSizeComboBox">
               SelectionChanged="RibbonGallery_SelectionChanged">
         <ribbon:ribbongallerycategory x:name="fontSize" />
      </ribbon:ribbongallery>
   </ribbon:ribboncombobox>
</wrappanel>

Step 2

Mainwindow.xaml.cs

C#
public MainWindow()
{
    InitializeComponent();
    InitializeFonts();
}
public void InitializeFonts()
{
    fonts.ItemsSource = Fonts.SystemFontFamilies;
    fontsComboBox.SelectedItem = "Arial";

    for (double i = 8; i < 48; i += 2)
    {
         fontSize.Items.Add(i);
     }
     fontSizeComboBox.SelectedItem = "8";
}

Step 3

The SelectionChanged:

C#
private void RibbonGallery_SelectionChanged(object sender,
                            RoutedPropertyChangedEventArgs<object> e)
{
    RibbonGallery source = e.OriginalSource as RibbonGallery;
    if (source == null) return;
    switch (source.Name)
    {
       case "fontsComboBox":
         //change the font face
         _documentManager.ApplyToSelection(
                               TextBlock.FontFamilyProperty,
                               source.SelectedItem);
          break;
       case "fontSizeComboBox":
        //Change the font size
         _documentManager.ApplyToSelection(
                              TextBlock.FontSizeProperty,
                              source.SelectedItem);
         break;
    }
}

In short, the RibbonGallery contains the SelectionChanged method and the RibbonGalleryCategory contain the ItemSource.

fonts.ItemsSource = Fonts.SystemFontFailies can be included directly into the XAML code as ItemSource = {x:Static Fonts.SystemFontFamilies}

Finally, some useful links:

This article was originally posted at http://blog.kribo.be/blog?p=180

License

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


Written By
Web Developer
Belgium Belgium
Developer within C#, Dynamics NAV (Navision), Php environments.

Comments and Discussions

 
GeneralGreat help for dynamic databinding Pin
MCY7-Feb-14 1:49
professionalMCY7-Feb-14 1:49 
QuestionWhat would it look like using MVVM? Pin
dietmar paul schoder25-Nov-13 5:44
professionaldietmar paul schoder25-Nov-13 5:44 
AnswerRe: What would it look like using MVVM? Pin
dietmar paul schoder25-Nov-13 5:59
professionaldietmar paul schoder25-Nov-13 5:59 
GeneralRe: What would it look like using MVVM? Pin
EngDRJ17-Mar-15 12:03
professionalEngDRJ17-Mar-15 12:03 
QuestionCombobox item not getting selected Pin
bizzare19883-Nov-11 19:18
bizzare19883-Nov-11 19:18 
AnswerRe: Combobox item not getting selected Pin
kribo3-Nov-11 21:27
professionalkribo3-Nov-11 21:27 

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

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