Fluent.Ribbon v6.0.0 Release Notes

Release Date: 2018-01-28 // about 6 years ago
    • ### Breaking changes
      • [#466](../../issues/466) - StrongName signed assembly? Hey, it's 2017...
        Fluent.Ribbon is no longer a strong-named assembly.
      • [#433](../../issues/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](../../issues/457) - Return type of IKeyTipedControl.OnKeyTipPressed was changed from void to KeyTipPressedResult.
      • The following Color and Brush resources were replaced/renamed/removed ("---" indicates 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.BackgroundBrush
    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
    • 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](../../issues/344) - Invisible header of combobox on QuickAccessToolBar.
      • [#395](../../issues/395) - issues with contextual tab group
      • [#405](../../issues/405) - InRibbonGallery when loaded, mouse wheel up or down cause crash. (thanks @Yumeryu)
      • [#419](../../issues/419) - BackstageTabItem Is Never Deselected if BackstageTabControl is not Logical Parent
      • [#428](../../issues/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](../../issues/415).
      • [#430](../../issues/430) - No Rezising at Fluent:RibbonContextualTabGroup at Version 5.0
      • [#433](../../issues/433) - ToggleButton not working correctly when placed in collapsed GroupBox
      • [#438](../../issues/438) - Titlebar icon missing left margin when maximized
      • [#439](../../issues/439) - Context menu and submenu disappears after a right click
      • [#446](../../issues/446) - Wrong submenu Position in application menu
      • [#450](../../issues/450) - Fix Ribbon.OnTitleBarChanged clearing the new title bar instead of the old one (thanks @Cubey2019)
      • [#451](../../issues/451) - combobox and dateformat
      • [#454](../../issues/454) - RibbonWindow title not shown in correct position when using SizeToContent
      • [#456](../../issues/456) - Maximising a RibbonWindow with MaxWidth or MaxHeight causes an extra border above the title bar
      • [#457](../../issues/457) - Using the keytip shortcut to open a backstage briefly opens it, then closes it immediately
      • [#459](../../issues/459) - Label of the Spinner disappears, if there isn't enough place
      • [#463](../../issues/463) - ShowQuickAccessToolBarAboveRibbon="False" causes crash
      • [#464](../../issues/464) - Clicking on hyperlink inside of ApplicationMenu causes crash
      • [#465](../../issues/465) - Clicking on ContextualGroup background or scrolling through ribbon will open disabled tab
        During this fix RibbonTabControl.GetFirstVisibleItem was renamed to RibbonTabControl.GetFirstVisibleAndEnabledItem.
      • [#473](../../issues/473) - RibbonWindow does not resize when Children resize and SizeToContent is used
      • [#481](../../issues/481) - ToggleButton behaviour is wrong when GroupName is set
      • [#485](../../issues/485) - InRibbonGallery broken when ItemsSource is empty
      • [#486](../../issues/486) - Stretching of DropDownButton differs from Button
      • [#489](../../issues/489) - Fluent Ribbon crashes program on shutdown
      • [#493](../../issues/493) - Sometimes icons are not drawn when using ObjectToImageConverter
      • [#500](../../issues/500) - Binding error for RibbonProperties.MouseOverBackground
      • [#501](../../issues/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](../../issues/430).
      • You can change accent and base colors by using ThemeManager just like in MahApps.Metro. Please read the documentation for details.
      • [#275](../../issues/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](../../issues/313) - Window state buttons not updating to Windows 10 look / feel
      • [#417](../../issues/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](../../issues/431) - Changing Ribbon Tab Control Background color and possibly adding Graphic Styling.
      • [#435](../../issues/435) - Add ability to change the Window Title Background the Ribbon Bar is on in order to match the Office 365 Style.
      • [#440](../../issues/440) - Enable changing the height of content area of RibbonTabControl
        ContentHeight is available on Ribbon and tranferred to RibbonTabControl from there
      • [#443](../../issues/443) - Release .NET 4.6.2 version
      • [#444](../../issues/444) - Add IgnoreTaskbarOnMaximize to RibbonWindow
      • [#445](../../issues/445) - Startsceen "shines" through backstage
      • [#455](../../issues/455) - Add brushes for checked toggle buttons (thanks @Cubey2019)
      • [#478](../../issues/478) - Custom MinWidth of Start Screen (LeftContent)
      • [#479](../../issues/479) - Bulgarian language (thanks @kalatchev)
      • [#480](../../issues/480) - Disable Scroll Wheel for tab selection
        You can control this behavior by using IsMouseWheelScrollingEnabled on Ribbon
      • [#484](../../issues/484) - Add special style/template for MenuItem with set description
      • [#488](../../issues/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](../../issues/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 http://fluentribbon.github.io/documentation/concepts/sizing#aligningControls
      • [#495](../../issues/495) - Add option disable handling of KeyTips
        You can now disable handling of all KeyTips by setting IsKeyTipHandlingEnabled on Ribbon to False.
      • [#503](../../issues/503) - Add IsDefinitive property to GalleryItem (thanks @noctis0430)