All Versions
Latest Version
Avg Release Cycle
141 days
Latest Release

Changelog History
Page 1

  • v9.0.0 Changes

    • Breaking changes

      • [#870](../../issues/870) - Add .NET 5 and .NET Core 3.1 and remove .NET Core 3.0
        Support for .NET Core 3.0 was removed and support for .NET Core 3.1 and .NET 5.0 was added
      • Increasing ControlzEx dependency version to >= 5
      • [#948](../../issues/948) - Minimize button misplaced
        Minimize button is moved to the right hand side of it's parent container.
        That means custom toolbar items are not moving the button further left anymore.

    ๐Ÿšš The following resources were added, renamed or removed ("---" indicates added when in column "Old" and removed when in column "New"):

    ๐Ÿšš Click here to show the list of renamed and removed things

    Old New
    ๐Ÿ’… RibbonTabControlToggleButtonStyle
    RibbonTabControlToggleButtonControlTemplate Fluent.Ribbon.Templates.RibbonTabControl.MinimizeToggleButton
    • ๐Ÿ›  ### Bug fixes

      • [#845](../../issues/845) - QuickAccessToolBar issues in Colorful variant
      • [#894](../../issues/894) - Cannot use scroll wheel in fluent:ApplicationMenu since Fluent.Ribbon 7
      • [#900](../../issues/900) - Application freezes when opening collapsed groups with galleries
      • [#908](../../issues/908) - KeyTipService should dismiss keytips if the first key does not match any keytips
      • [#918](../../issues/918) - Custom color does not reset color gallery selection state
      • [#919](../../issues/919) - Ribbon content is not confined in Windows dimensions
      • [#925](../../issues/925) - Controls might not be shown when using default layout of RibbonToolbar (thanks @nishy2000)
      • [#927](../../issues/927) - Size value calculated by RibbonGroupBox is not reflected in RibbonControls in Panel control (thanks @nishy2000)
      • [#929](../../issues/929) - SizeDefinition property of RibbonControls in RibbonToolBar is not reflected in layout (thanks @nishy2000)
      • [#941](../../issues/941) - LauncherIcon and LauncherText of RibbonGroupBox are not applied to the appearance (thanks @nishy2000)
      • [#943](../../issues/943) - The LauncherIcon in the RibbonGroupBox added to QuickAccess will always be shown (thanks @nishy2000)
      • [#952](../../issues/952) - Help with IsSelectionRequired property setting on "File" tab for accessibility purposes
      • [#954](../../issues/954) - Adding an InputBinding for Alt+Up or Alt+Down results in extra character (thanks @dgosbell)
      • [#961](../../issues/961) - Fluent.Button Header Binding not visible
    • Enhancements/Features

      • [#935](../../issues/935) - Support MediumIcon (24x24) size in RibbonGroupBox (thanks @nishy2000)
      • [#936](../../issues/936) - Add ability to vertically align items in Backstage
        You have to set VerticalAlignment="Bottom", DockPanel.Dock="Bottom" and if you want to align multiple items at the bottom invert their order (because of how DockPanel works).
      • Added automation peers for InRibbonGallery and GalleryItem
      • Improved keyboard navigation for InRibbonGallery
  • v8.0.3 Changes

    • ๐Ÿ›  ### Bug fixes

      • [#877](../../issues/877) - Titlebar and Quick-Access broken when using StartScreen
      • [#881](../../issues/881) - Quick Access Toolbar: Drop Down Arrow not Visible
      • [#883](../../issues/883) - GroupBy not working anymore on Fluent:Gallery?
        Added IsGrouped to Gallery.
      • [#885](../../issues/885) - When a window is maximized its 'Restore down' icon gets distorted
  • v8.0.2 Changes

    November 29, 2020
    • ๐Ÿ› Bug fixes

      • Fixing window button layout when DPI != 100%
      • #860 - Quick access buttons do not show when first item is added
      • #862 - Hover effects on minimize/maximize icons (colorful theme)
      • #868 - App crashes When pressing alt multiple times..
      • #869 - Crash if Ribbon is collapsed (after Update to Version 8.0.1)
  • v8.0.1 Changes

    October 24, 2020
    • ๐Ÿ› Bug fixes

      • #821 - Different visual of menu item and submenu item
      • #823 - Gallery item content hidden when mouse pressed
      • #825 - CLS compliance
      • #830 - When a window is set to automatically resize to its content, when its title is set in code, it disappears
      • #834 - InRibbonGallery resizing issue when changing Visibility
      • #837 - InRibbonGallery Property MinItemsInDropDownRow not considered
      • #838 - InRibbonGallery changes into DropDownButton after DropDown is opened and closed
      • #840 - Ribbon does not scroll anymore
      • #848 - Colorful-Theme and Fullscreen Issue
      • #849 - QuickAccessToolBar not editable anymore (thanks @chrfin)
      • #851 - Tab KeyTips Are Shown Together With Tab-Item KeyTips (different to 7.0.0)
      • #855 - Method Fluent.StartScreen.Show lacks documentation return value
      • #856 - RibbonTabItem.IsSelected is briefly set to true for a tab that's not selected anymore, when a modal dialog is closed.
  • v8.0.0 Changes

    July 14, 2020
    • Breaking changes

      • Support for .NET 4.5 was removed and support for .NET 4.5.2 was added
      • [#811](../../issues/811) - ThemeManager was replaced by ThemeManager from "ControlzEx".
        You now have to use ThemeManager.Current instead of the static class ThemeManager.
        Because of this you now got more automatic and manual sync options.
        Syncing now, optionally, includes the current accent color from Windows.
        You can now generate themes at runtime more easily.
        The documentation for Fluent.Ribbon can be found at
        The documentation for ThemeManager can be found at
      • Colorful was removed from the available base colors for themes and was changed to a theme "variant".
        Due to this change you now have a lot more themes to choose from.
      • The built in state storage will no longer persist the state of quick access items.
        Details can be found in [#810](../../issues/810)
    • ๐Ÿ›  ### Bug fixes

      • [#745](../../issues/745) - SplitButton.IsEnabled based on Command.CanExecute?
      • [#772](../../issues/772) - Backstage & Keyboard navigation
      • [#782](../../issues/782) - Using MahApps IconPacks for BackstageTabItem's icon
      • [#786](../../issues/786) - InRibbonGallery: Dynamic ItemWidth / use translated Text in items
      • [#788](../../issues/788) - Maximize icon is incorrectly drawn on high-dpi displays
      • [#789](../../issues/789) - Opening gallery messes up InRibbonGallery resizing.
      • [#791](../../issues/791) - Problem with dynamic items in InRibbonGallery
      • [#795](../../issues/795) - Check mark of menuitem not visible
      • [#798](../../issues/798) - The elements in the ribbon use ElementName = xxx to bind the data and cannot find the xxx element
      • [#819](../../issues/819) - Is there a way to disable default tooltip when RibbonGroupBox is disabled?
    • Enhancements/Features

      • [#804](../../issues/804) - Ribbon Window's Icon Not Centered
        Added VerticalIconAlignment to RibbonWindow
  • v7.1.0 Changes

    March 29, 2020
    • ๐Ÿ› Bug fixes

      • #745 - SplitButton.IsEnabled based on Command.CanExecute?
      • #755 - ComboBox.Height fixed at 22
        ๐Ÿ’… The height setting was moved from the template to the style.
      • #758 - Auto menu expanding not working for MenuItems with ItemSource binding
      • #765 - InRibbonGallery Resizing Issues
      • #766 - Resizing of InRibbonGallery in a DataTemplate does not work
      • #768 - Accessibility Insights: "An onscreen element must not have a null"
      • #769 - GalleryPanel does not resize properly on apply of filter
      • #770 - Cannot left align the content in InRibbonGallery
    • โœจ Enhancements/Features

      • Many automation peers have been added and improved
      • #775 - First underscore missing in drop down menu header text
        You can now control wether the ribbon MenuItem handles access keys or not by setting RecognizesAccessKey
  • v7.0.1 Changes

    December 08, 2019
    • ๐Ÿ› Bug fixes

      • #746 - NullReferenceException after upgrading to 7.0.0
      • #751 - QuickAccessMenuItem - IsChecked doesn't work for Target
      • #756 - RibbonWindow.IsIconVisible does not seem to work
      • #757 - Ribbon right-click menu offsetted for DPI=150% (or more)
  • v7.0.0 Changes

    September 29, 2019
    • ๐Ÿ’ฅ Breaking changes

      • #471 - Drop support for .Net 4.0
      • Reverted #466 - StrongName signed assembly?
        Assemblies are strong named again , but AssemblyVersion is now fixed for every major release.
        This means that, for example, for version 7.1 the AssemblyVersion will still be 7.0.
        ๐Ÿ›  Other versions like AssemblyFileVersion etc. won't be fixed.
      • #515 - Switch to new csproj format and require VS2017 for development
      • #545 - SplitButton.IsChecked is not bound 2 way by default
      • Due to #549 RibbonGroupBox.Header is now of type object and RibbonGroupBox now inherits from HeaderedItemsControl instead of ItemsControl.
        ๐Ÿ“š Please have a look at the documentation for details.
      • Removed CornerRadius everywhere except in all controls related to ApplicationMenu.
      • Default Foreground for ComboBox changed from Inherited to Fluent.Ribbon.Brushes.LabelTextBrush.
      • Default VerticalContentAlignment for ComboBox, Spinner and TextBox changed from Top to Center.
      • Key tips can not be opened by pressing Space anymore.
      • #574 - Move backstage animations from BackstageTabControl to Backstage .
      • Backstage.IsOpenAnimationEnabled got renamed to Backstage.AreAnimationsEnabled. This also applies to StartScreen.
      • Backstage.HideAnimationDuration got removed. This also applies to StartScreen.
      • Default value of dependency property Backstage.HideContextTabsOnOpen is now true. The default value from style was already set to true. So this should only be a breaking change for you if you did not use the default style for Backstage.
      • Default value for Foreground of RibbonTabItem is now Fluent.Ribbon.Brushes.RibbonTabItem.Foreground instead of Fluent.Ribbon.Brushes.RibbonTabItem.Selected.Foreground because trigger order was fixed in #578.
      • GlassFrameThickness was removed in favor of the new GlowWindowBehavior. Thus you can now use GlowBrush and NonActiveGlowBrush on RibbonWindow. The resize border now also works "outside" of the window.
        ๐Ÿ›  This fixes #307, #319 and #556.
      • The default value for TabItemSelectedForeground on RibbonContextualTabGroup is now bound to Fluent.Ribbon.Brushes.RibbonContextualTabGroup.TabItemSelectedForeground. Previously this was bound to Foreground of RibbonContextualTabGroup.
      • The default value for TabItemMouseOverForeground on RibbonContextualTabGroup is now bound to Fluent.Ribbon.Brushes.RibbonContextualTabGroup.TabItemMouseOverForeground. Previously this was bound to Fluent.Ribbon.Brushes.HighlightBrush or BlackBrush.
      • The default value for Fluent:RibbonProperties.MouseOverForeground on RibbonTabItem is now bound to Fluent.Ribbon.Brushes.RibbonTabItem.MouseOver.Foreground. Previously this was bound to Fluent.Ribbon.Brushes.HighlightBrush or BlackBrush.
      • #596 - Breaking changes in theming
        The theming got rewritten this means that there is no longer a separation between AppTheme and Accent. These got replaced by Theme.
        Instead of something like pack://application:,,,/Fluent;component/Themes/Colors/BaseLight.xaml and pack://application:,,,/Fluent;component/Themes/Accents/Cobalt.xaml you now have to use pack://application:,,,/Fluent;component/Themes/Themes/Light.Cobalt.xaml.
        The words AppTheme and Accent are replaced by Theme everywhere.
      • The target type for Fluent.Ribbon.Styles.MenuItem (previously named FluentDefaultSystemMenuItemStyle) now is Fluent:MenuItem instead of MenuItem
      • Instead of depending on System.Windows.Interactivity we now depend on the open source version Microsoft.Xaml.Behaviors.Wpf
      • #650 - Create XAML icons and replace the shipped pngs with these (thanks @DenZuck for creating the xaml icons)
        Due to this change all shipped images are now of type DrawingImage instead of BitmapImage.
      • The filename inside IsolatedStorageFile for the default RibbonStateStorage is now "Fluent.Ribbon.State." + Hex value of MD5 instead of "Fluent.Ribbon.State.2.0." + hex value of GetHashCode. This was done because GetHashCode does not return a stable value, especially on .NET core 3.0.
      • RibbonTabItem.Indent was replaced by RibbonTabItem.HeaderPadding

    ๐Ÿšš The following resources were added, renamed or removed ("---" indicates added when in column "Old" and removed when in column "New"):

    ๐Ÿšš Click here to show the list of renamed and removed things

    Old New
    ๐Ÿ’… ApplicationMenuStyle
    ๐Ÿ’… ApplicationMenuSecondLevelStyle
    ๐Ÿ’… BackstageButtonStyle
    ๐Ÿ’… FluentDefaultSystemMenuItemStyle
    BackstageButtonControlTemplate Fluent.Ribbon.Templates.BackstageTabControl.Button
    ๐Ÿ’… BackstageSeparatorTabItemStyle
    ๐Ÿ’… ComboBoxBackstageStyle
    ComboBoxItemBackstageControlTemplate ---
    ๐Ÿ’… MetroComboBoxItemBackstageStyle
    ComboBoxBackstageControlTemplate ---
    ๐Ÿ’… ButtonBackstageStyle
    ButtonBackstageControlTemplate ---
    ๐Ÿ’… ToggleButtonBackstageStyle
    ToggleButtonBackstageControlTemplate ---
    ๐Ÿ’… DropDownButtonBackstageStyle
    DropDownButtonBackstageControlTemplate ---
    --- Fluent.Ribbon.Brushes.TextBox.CaretBrush
    --- Fluent.Ribbon.Brushes.TextBox.SelectionBrush
    DialogLauncherButtonKeyTipKeysProperty LauncherKeysProperty
    OnCanAddToQuickAccessToolbarChanged OnCanAddToQuickAccessToolBarChanged
    OnIsOpenTrueStoryboard Fluent.Ribbon.Storyboards.Backstage.IsOpenTrueStoryboard
    OnIsOpenFalseStoryboard Fluent.Ribbon.Storyboards.Backstage.IsOpenFalseStoryboard
    --- Fluent.Ribbon.Brushes.RibbonWindow.TitleBackground
    --- Fluent.Ribbon.Brushes.RibbonContextualTabGroup.TabItemSelectedForeground
    --- Fluent.Ribbon.Brushes.RibbonContextualTabGroup.TabItemMouseOverForeground
    --- Fluent.Ribbon.Brushes.RibbonContextualTabGroup.TabItemSelectedMouseOverForeground
    --- Fluent.Ribbon.Brushes.RibbonTabItem.MouseOver.Foreground
    --- Fluent.Ribbon.Brushes.RibbonTabItem.Selected.MouseOver.Foreground
    --- Fluent.Ribbon.Brushes.Backstage.Background
    --- Fluent.Ribbon.Brushes.Backstage.Foreground
    --- Fluent.Ribbon.Brushes.BackstageTabControl.Button.MouseOver.Background
    --- Fluent.Ribbon.Brushes.BackstageTabItem.Header.Foreground
    --- Fluent.Ribbon.Brushes.BackstageTabItem.MouseOver.Background
    --- Fluent.Ribbon.Brushes.BackstageTabItem.Selected.Background
    --- Fluent.Ribbon.Brushes.Backstage.BackButton.Background
    --- Fluent.Ribbon.Brushes.Backstage.BackButton.Foreground
    --- Fluent.Ribbon.Brushes.BackstageTabControl.ItemsPanelBackground
    --- Fluent.Ribbon.Brushes.RibbonWindow.TitleForeground
    --- Fluent.Ribbon.Templates.WindowCommands
    WindowCommandsControlTemplate Fluent.Ribbon.Templates.WindowCommands.Button
    ๐Ÿ’… ---
    ๐Ÿ’… CaptionButtonStyle
    --- Fluent.Ribbon.Templates.WindowCommands.CaptionButton
    • ๐Ÿ› Bug fixes

      • #165 - Save As menu is added to QAT but does not have child items
      • #307 - Black flicker on complete window-area when resizing
      • #319 - How to make window resizable with Win32 content?
      • #535 - BorderBush on bottom of RibbonTabItem (and Ribbon)
      • #536 - RibbonContextualTabGroup header text trimmed until hovered
      • #542 - InRibbonGallery not reducing properly
      • #543 - Using images that can't be found during design time crashes designer
        ๐Ÿ‘ป A generic "error" image is rendered during design time and an exception is thrown during runtime.
      • #551 - "Auto" size for ribbon group box header to support custom font sizes (thanks @chrfin)
      • #552 - RibbonGroupBox should resize when font family or size are changed
      • #556 - Wrong Window Resize-Border Sensitivity
      • #562 - Pressing "right" arrow key to open submenu on menuitem causes NullRef exception when there is no submenu
      • #564 - Gallery overflow panel (with menu items) doesn't close when clicking once in the application
      • #572 - KeyTip.Keys Position
      • #573 - Empty context menu on controls and ribbon
      • #576 - Does RibbonGroupBox set Foreground invalid?
      • #581 - StackOverflow Exception when trying to access ApplicationMenu while RibbonMenu is minimized
      • #586 - BackstageTabItem IsEnabled=False still displays content
      • #587 - DisplayMemberPath no longer working on DropDownButton/MenuItem as of version 6.0
      • #593 - Disable state selected in InRibbonGallery after click
      • #594 - Keep title in the same location when opening the backstage
      • #602 - Pin button not clickable when Ribbon in collapsed state
      • #607 - Submenu contained in DropDownButton closes too slow
      • #616 - ContextMenu auto hidden after right click (related to #439)
      • #632 - Ribbon sometimes clips over other applications
      • #637 - Escape key doesn't close menu on data-bound DropDownButton
      • #638 - Setting AreTabHeadersVisible="False" on startup makes entire ribbon disappear
      • #639 - Group headers take focus when tabbing through with keyboard
      • #653 - Incorrect context menu of Fluent:TextBox
      • #656 - Backstage icons not showing
      • #659 - Fix Dutch localization errors (thanks @carloslubbers)
      • #660 - ContextualTabs visibility problem
      • #662 - Backstage/StartScreen closing if clicking outside of Application
      • #663 - Fluent:ApplicationMenu not closing on outside click after opening context menu.
      • #666 - InRibbonGallery DropDown not layouting correctly
      • #673 - RibbonContextualTabGroup not shown
      • #677 - Alt Codes no longer working in alpha version v7.0.0
      • #688 - Backstage and StartScreen closing when pressing Alt
      • #698 - Submenus in the application menu are not opened each time
      • #704 - CheckBox.Header - InvalidCastException
      • #705 - ApplicationMenu header can't be set to text
      • #714 - ResizeMode="NoResize" and ShowInTaskbar="False" causes crash on startup
      • #722 - NullReferenceException in KeyTipService.OnAdornerChainTerminated
      • #730 - Add null check for Application.Current to ThemeManager (thanks @Evangelink)
    • โœจ Enhancements/Features

      • #516 - Add options to hide the row containing RibbonTabItems
        You can achieve this by:
      • Setting Ribbon.Menu to null (or never assigning anything)
      • Setting Ribbon.CanMinimize to false
      • Setting Ribbon.AreTabHeadersVisible to false
      • Setting Ribbon.IsToolBarVisible to false
      • #533 - Issue when using templated ribbon items
      • #544 - Add proper DPI support for icons/images aquired through ObjectToImageConverter on .NET 4.6.2
      • #549 - Implement RibbonGroupBox header template
      • #553 - Introduce resources for CaretBrush and SelectionBrush for TextBox
      • #554 - No Keytips on templated ribbon items.
      • #563 - Add customizable keys for activating the key tips. (thanks @pschimmel)
        You can now set your own keys for showing key tips. Have a look at Ribbon.KeyTipKeys.
      • #568 - Allow setting the height of GalleryPanel inside InRibbonGallery
        You can now control the height of the GalleryPanel inside InRibbonGallery by setting GalleryPanelContainerHeight.
      • #578 - Theming of selected context ribbon tab
        You can now use Fluent.Ribbon.Brushes.RibbonWindow.TitleBackground, RibbonContextualTabGroup.TabItemSelectedForeground and RibbonContextualTabGroup.TabItemMouseOverForeground to further control colors.
      • #590 - SplitButton custom KeyTip
        You can now use PrimaryActionKeyTipPostfix and SecondaryActionKeyTipPostfix on SplitButton to control the postfix for key tips.
      • #592 - Disable context menu on Ribbon
        0๏ธโƒฃ You can now use IsDefaultContextMenuEnabled on Ribbon to disable the default context menu.
      • #599 - MahApps.Metro dialog on backstage
        ๐Ÿ”Š You can now use UseHighestAvailableAdornerLayer on Backstage to improve interop with MahApps.Metro regarding dialogs above the backstage.
      • #606 - added non-generated Colorful.Blue and Colorful.Gray themes (thanks @stylefish)
      • #635 - Quick access menu arrow customization
      • #640 - Narrator doesn't read out button headers
      • #642 - Ignore Alt Gr key, by blacklisting modifier keys, in KeyTips detection (thanks @stylefish)
      • #692 - Add dedicated secondary KeyTip on SplitButton
        You can now use SecondaryKeyTip on SplitButton for the secondary key tip. If KeyTip is empty or null only the SecondaryKeyTip will be used.
      • #696 - Adding Greek language translations (thanks @b-karamichael)
  • v6.1.0 Changes

    February 15, 2018
    • ๐Ÿ› Bug fixes

      • #510 - Submenus in DropDownButton are not opened each time
      • #511 - Binding on RibbonWindow.Icon not working
      • #512 - Ideal text color should match the colors in the ribbon
      • #513 - Hovering causes flickering of ribbon backstage menu items
      • #517 - Fluent 6.0: buttons inside drop downs don't seem to work when using ClosePopupOnMouseDown
      • #524 - Fixes Korean translation error. (thanks @softinus)
    • โœจ Enhancements

      • #509 - Checked mark + Icon image at Menuitem
      • #514 - Detect Windows 10 app mode setting and adjust current AppTheme automatically
        ๐Ÿ You can use ThemeManager.SyncAppThemeWithWindowsAppModeSetting to align the AppTheme once.
        ๐Ÿ You can use ThemeManager.IsAutomaticWindowsAppModeSettingSyncEnabled to align the AppTheme automatically when the Windows setting is changed during runtime.
      • #518 - Replace Thread.Sleep with Task.Delay for non-.NET 4.0 platforms (thanks @GeertvanHorrik)
  • v6.0.0 Changes

    January 28, 2018


    • ๐Ÿ’ฅ Breaking changes

      • #466 - StrongName signed assembly? Hey, it's 2017...
        Fluent.Ribbon is no longer a strong-named assembly.
      • #433 - ToggleButton not working correctly when placed in collapsed GroupBox
        ToggleButton grouping was done like it's done for a regular RadioButton, except that it was bound to visual root scope.
        ๐Ÿšš The dependency on a visual root scope has been remove, so please adjust the GroupName for groups if you have groups with the same name in different visual root scopes.
      • DropDownButton (and thus also SplitButton) now inherit from ItemsControl instead of MenuBase.
        This was changed because MenuBase causes a lot of issues regarding keyboard navigation, focus etc..
        This also means that you should use Fluent:MenuItem instead of the system provided MenuItem as immediate children of DropDownButton and SplitButton.
      • SplitButton now generates two KeyTip elements for itself. If you previously used "S" as KeyTip there will now be "S1" for the button action and "S2" will open the dropdown.
      • Changes made to Ribbon
      • Internal properties for QuickAccessToolBar and TabControl got converted to DependencyProperty
      • Changed order of Children returned from LogicalChildren
      • Type of metadata for Menu and StartScreen changed from PropertyMetadata to FrameworkPropertyMetadata
      • There are a lot new resources to control the colorization. Please have a look at Colors.xaml for a list of all available resources.
        This also means that, for example, simply changing the foreground/background of one outer control won't change the foreground/background of all inner controls.
      • #457 - Return type of IKeyTipedControl.OnKeyTipPressed was changed from void to KeyTipPressedResult.
      • The following Color and Brush resources got replaced/renamed/removed: ๐Ÿšš Click here to show the list of replaced/renamed/removed things
    Old New
    Fluent:MetroColors.ThemeColorKey Fluent.Ribbon.Colors.AccentBaseColor
    ButtonDisabledBackgroundBrush ---
    ButtonDisabledBorderBrush ---
    SliderShadowBrush WhiteBrush
    SliderLightenBrush WhiteBrush
    BackstageBackgroundBrush WhiteBrush
    BackstageControlHoverBorderBrush Fluent.Ribbon.Brushes.Button.MouseOver.BorderBrush
    BackstageControlActiveBorderBrush Fluent.Ribbon.Brushes.Button.Pressed.BorderBrush
    ButtonBorderBrush Fluent.Ribbon.Brushes.Control.BorderBrush
    ButtonHoverOuterBackgroundBrush Fluent.Ribbon.Brushes.Button.MouseOver.Background
    ButtonHoverOuterBorderBrush Fluent.Ribbon.Brushes.Button.MouseOver.BorderBrush
    ButtonPressedOuterBackgroundBrush Fluent.Ribbon.Brushes.Button.Pressed.Background
    ButtonPressedOuterBorderBrush Fluent.Ribbon.Brushes.Button.Pressed.BorderBrush
    ButtonPressedInnerBorderBrush Fluent.Ribbon.Brushes.Button.Pressed.BorderBrush
    ButtonPressedInnerBackgroundBrush Fluent.Ribbon.Brushes.Button.Pressed.Background
    ButtonHoverInnerBackgroundBrush ---
    ButtonHoverInnerBorderBrush ---
    ButtonCheckedBrush Fluent.Ribbon.Brushes.HighlightBrush & Fluent.Ribbon.Brushes.Button.MouseOver.Background
    CheckBoxHoverBackgroundBrush Fluent.Ribbon.Brushes.Button.MouseOver.Background
    CheckBoxHoverBorderBrush Fluent.Ribbon.Brushes.Button.MouseOver.BorderBrush
    CheckBoxPressedBackgroundBrush Fluent.Ribbon.Brushes.Button.Pressed.Background
    CheckBoxPressedBorderBrush Fluent.Ribbon.Brushes.Button.Pressed.BorderBrush
    CheckBoxOutterBorderBrush ---
    CheckBoxOutterBackgroundBrush ---
    CheckBoxInnerBorderBrush ---
    CheckBoxInnerBackgroundBrush ---
    CheckBoxHoverOutterBorderBrush ---
    CheckBoxHoverOutterBackgroundBrush ---
    CheckBoxHoverInnerBorderBrush ---
    CheckBoxHoverInnerBackgroundBrush ---
    CheckBoxPressedOutterBorderBrush ---
    CheckBoxPressedOutterBackgroundBrush ---
    CheckBoxPressedInnerBorderBrush ---
    CheckBoxPressedInnerBackgroundBrush ---
    ContextMenuLineBrush ---
    ContextMenuBarBackgroundBrush Fluent.Ribbon.Brushes.DropDown.BackgroundBrush
    ContextMenuBarBorderBrush Fluent.Ribbon.Brushes.DropDown.BorderBrush
    ContextMenuBarResizeBorderBrush Fluent.Ribbon.Brushes.DropDown.Resize.BorderBrush
    ContextMenuBarResizeBackgoundBrush Fluent.Ribbon.Brushes.DropDown.Resize.BackgoundBrush
    GalleryBorderBrush Fluent.Ribbon.Brushes.Control.BorderBrush
    InRibbonGalleryBorderBrush Fluent.Ribbon.Brushes.Control.BorderBrush
    BackstageGalleryItemHoverBackgroundBrush Fluent.Ribbon.Brushes.Button.MouseOver.Background
    BackstageGalleryItemSelectedBackgroundBrush Fluent.Ribbon.Brushes.Button.Pressed.Background
    BackstageToggleButtonCheckedBorderBrush Fluent.Ribbon.Brushes.HighlightBrush
    BackstageToggleButtonCheckedBackgroundBrush Fluent.Ribbon.Brushes.Button.MouseOver.Background
    QuickAccessToolbarPopupBackgrondBrush {Binding Background, RelativeSource={RelativeSource AncestorType=Window}}
    WindowContentBorderBrush Fluent.Ribbon.Brushes.Separator.BorderBrush
    GroupBoxSeparatorBorderBrush Fluent.Ribbon.Brushes.Separator.BorderBrush
    GroupBoxSeparatorBackgroundBrush Fluent.Ribbon.Brushes.Separator.Background
    ContextMenuSeparatorBrush Fluent.Ribbon.Brushes.Separator.BorderBrush
    KeyTipBackgroundBrush Fluent.Ribbon.Brushes.KeyTip.Background
    KeyTipBorderBrush Fluent.Ribbon.Brushes.KeyTip.BorderBrush
    GalleryHeaderBackgroundBrush Fluent.Ribbon.Brushes.Gallery.Header.Background
    TextBoxBorderBrush Fluent.Ribbon.Brushes.TextBox.BorderBrush
    TextBoxBackgroundBrush Fluent.Ribbon.Brushes.TextBox.Background
    TextBoxHoverBackgroundBrush Fluent.Ribbon.Brushes.TextBox.MouseOver.Background
    TextBoxHoverBorderBrush Fluent.Ribbon.Brushes.TextBox.MouseOver.BorderBrush
    TextBoxDisabledBackgroundBrush Fluent.Ribbon.Brushes.TextBox.Disabled.Background
    TextBoxDisabledBorderBrush Fluent.Ribbon.Brushes.TextBox.Disabled.BorderBrush
    RibbonSeparatorBrush Fluent.Ribbon.Brushes.GroupSeparator.Background
    GroupSeparatorBrush Fluent.Ribbon.Brushes.GroupSeparator.Background
    CloseButtonHoverBackgroundBrush Fluent.Ribbon.Brushes.WindowCommands.CloseButton.MouseOver.Background
    CloseButtonPressedBackgroundBrush Fluent.Ribbon.Brushes.WindowCommands.CloseButton.Pressed.Background
    MenuItemBackground Fluent.Ribbon.Brushes.MenuItem.Background
    MenuItemCheckBoxBackgroundBrush Fluent.Ribbon.Brushes.ApplicationMenuItem.CheckBox.Background
    MenuItemCheckBoxBorderBrush Fluent.Ribbon.Brushes.ApplicationMenuItem.CheckBox.BorderBrush
    RibbonThemeColorBrush Fluent.Ribbon.Brushes.AccentBaseColorBrush
    TransparentBrush ---
    BackstageFontBrush Fluent.Ribbon.Brushes.IdealForegroundColorBrush
    TabItemFontBrush Fluent.Ribbon.Brushes.LabelTextBrush
    Fluent.Ribbon.Brushes.LabelTextBrush Fluent.Ribbon.Brushes.LabelTextBrush
    GroupHoverBrush Fluent.Ribbon.Brushes.RibbonGroupBox.Collapsed.MouseOver.Background GroupHoverBrush
    GroupHighlightBrush Fluent.Ribbon.Brushes.RibbonGroupBox.DropDownOpen.Background
    GroupBoxFontBrush Fluent.Ribbon.Brushes.RibbonGroupBox.Header.Foreground
    ActiveTabBackgroundBrush Fluent.Ribbon.Brushes.RibbonTabItem.Active.Background
    TabItemSelectedFontBrush Fluent.Ribbon.Brushes.RibbonTabItem.Selected.Foreground
    RibbonBackgoundBrush Fluent.Ribbon.Brushes.Ribbon.Background
    RibbonTopBorderBrush Fluent.Ribbon.Brushes.RibbonTabItem.BorderBrush & Fluent.Ribbon.Brushes.ColorGallery.Item.BorderBrush
    0๏ธโƒฃ ScrollButtonDefaultBorderBrush
    0๏ธโƒฃ ScrollButtonDefaultBackgroundBrush
    ScrollButtonHoverBorderBrush Fluent.Ribbon.Brushes.Button.MouseOver.BorderBrush
    ScrollButtonHoverBackgroundBrush Fluent.Ribbon.Brushes.Button.MouseOver.Background
    ScrollButtonPressedBorderBrush Fluent.Ribbon.Brushes.Button.Pressed.BorderBrush
    ScrollButtonPressedBackgroundBrush Fluent.Ribbon.Brushes.Button.Pressed.Background
    โช ScrollBackgroundBrush
    ScrollVerticalBackgroundBrush Fluent.Ribbon.Brushes.ScrollBar.Background
    0๏ธโƒฃ ScrollThumbDefaultBorderBrush
    0๏ธโƒฃ ScrollThumbDefaultBackgroundBrush
    ScrollThumbHoverBorderBrush Fluent.Ribbon.Brushes.Button.MouseOver.BorderBrush
    ScrollThumbHoverBackgroundBrush Fluent.Ribbon.Brushes.Button.MouseOver.Background
    ScrollThumbPressedBorderBrush Fluent.Ribbon.Brushes.Button.Pressed.BorderBrush
    ScrollThumbPressedBackgroundBrush Fluent.Ribbon.Brushes.Button.Pressed.Background
    ScrollViewerButtonBorderBrush Fluent.Ribbon.Brushes.ScrollViewer.Button.BorderBrush
    ScrollViewerButtonBackgroundBrush Fluent.Ribbon.Brushes.ScrollViewer.Button.BackgroundBrush
    • 0๏ธโƒฃ The following default values changed:
    Name/Location Old New
    Button.BorderThickness 0 1
    ContentGapHeight 5 1
    • ๐Ÿ’… The following styles got removed/renamed:
    Old New
    ๐Ÿ’… NonEditableComboBoxItemStyle
    ๐Ÿ’… EditableComboBoxItemStyle
    • ๐Ÿ› Bug fixes

      • #344 - Invisible header of combobox on QuickAccessToolBar.
      • #395 - issues with contextual tab group
      • #405 - InRibbonGallery when loaded, mouse wheel up or down cause crash. (thanks @Yumeryu)
      • #419 - BackstageTabItem Is Never Deselected if BackstageTabControl is not Logical Parent
      • #428 - Values from DependencyProperties with FrameworkPropertyMetadataOptions.Inherits are not properly inherited from Ribbon to Menu, StartScreen and some other children
        This also overrules the fix made for #415.
      • #430 - No Rezising at Fluent:RibbonContextualTabGroup at Version 5.0
      • #433 - ToggleButton not working correctly when placed in collapsed GroupBox
      • #438 - Titlebar icon missing left margin when maximized
      • #439 - Context menu and submenu disappears after a right click
      • #446 - Wrong submenu Position in application menu
      • #450 - Fix Ribbon.OnTitleBarChanged clearing the new title bar instead of the old one (thanks @Cubey2019)
      • #451 - combobox and dateformat
      • #454 - RibbonWindow title not shown in correct position when using SizeToContent
      • #456 - Maximising a RibbonWindow with MaxWidth or MaxHeight causes an extra border above the title bar
      • #457 - Using the keytip shortcut to open a backstage briefly opens it, then closes it immediately
      • #459 - Label of the Spinner disappears, if there isn't enough place
      • #463 - ShowQuickAccessToolBarAboveRibbon="False" causes crash
      • #464 - Clicking on hyperlink inside of ApplicationMenu causes crash
      • #465 - Clicking on ContextualGroup background or scrolling through ribbon will open disabled tab
        During this fix RibbonTabControl.GetFirstVisibleItem was renamed to RibbonTabControl.GetFirstVisibleAndEnabledItem.
      • #473 - RibbonWindow does not resize when Children resize and SizeToContent is used
      • #481 - ToggleButton behaviour is wrong when GroupName is set
      • #485 - InRibbonGallery broken when ItemsSource is empty
      • #486 - Stretching of DropDownButton differs from Button
      • #489 - Fluent Ribbon crashes program on shutdown
      • #493 - Sometimes icons are not drawn when using ObjectToImageConverter
      • #500 - Binding error for RibbonProperties.MouseOverBackground
      • #501 - Ribbon controls disappear when ribbon is initially disabled
    • โœจ Enhancements

      • LayoutTransform and RenderTransform can now be used directly on RibbonWindow as this now gets forwarded to the first template child of the window. Have a look at TestWindow in the showcase application for an example on how to use it. This was added as the fix for #430.
      • You can change accent and base colors by using ThemeManager just like in MahApps.Metro. Please read the documentation for details.
      • #275 - Option for customizing the quick access toolbar access keys
        โšก๏ธ QuickAccessToolBar now has a property called UpdateKeyTipsAction which accepts an instance of QuickAccessToolBar through which you can create your own keytips for items in the toolbar.
        โœ… Look at the UnitTest QuickAccessToolBarTests.TestCustomKeyTips for a sample.
      • #313 - Window state buttons not updating to Windows 10 look / feel
      • #417 - Keytips for Splitbuttons
        You now get 2 KeyTips for SplitButton. One for the main action button and one for the dropdown. Those KeyTips get generated by append "A" and "B" to the original KeyTip.
      • #431 - Changing Ribbon Tab Control Background color and possibly adding Graphic Styling.
      • #435 - Add ability to change the Window Title Background the Ribbon Bar is on in order to match the Office 365 Style.
      • #440 - Enable changing the height of content area of RibbonTabControl
        ContentHeight is available on Ribbon and tranferred to RibbonTabControl from there
      • #443 - Release .NET 4.6.2 version
      • #444 - Add IgnoreTaskbarOnMaximize to RibbonWindow
      • #445 - Startsceen "shines" through backstage
      • #455 - Add brushes for checked toggle buttons (thanks @Cubey2019)
      • #478 - Custom MinWidth of Start Screen (LeftContent)
      • #479 - Bulgarian language (thanks @kalatchev)
      • #480 - Disable Scroll Wheel for tab selection
        You can control this behavior by using IsMouseWheelScrollingEnabled on Ribbon
      • #484 - Add special style/template for MenuItem with set description
      • #488 - Display border around content area of RibbonTabControl
        You can now use Fluent.Ribbon.Values.RibbonTabControl.Content.BorderThickness to control the thickness of the border around the content area of RibbonTabControl
      • #494 - How to align controls such as ToggleButton, Spinner with text
        You can now opt in to align the headers of controls like ComboBox or Spinner which are placed in the same column of a RibbonGroupBox by adding Grid.IsSharedSizeScope="True" to a RibbonGroupBox.
        You can opt out of this behavior for single controls in that column by adding Fluent:RibbonGroupBoxWrapPanel.ExcludeFromSharedSize="True" to that control.
        ๐Ÿ“š Documentation can be found at
      • #495 - Add option disable handling of KeyTips
        You can now disable handling of all KeyTips by setting IsKeyTipHandlingEnabled on Ribbon to False.
      • #503 - Add IsDefinitive property to GalleryItem (thanks @noctis0430)