v6.0.0
6.0.0
-
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 regularRadioButton
, except that it was bound to visual root scope.
The dependency on a visual root scope has been remove, so please adjust theGroupName
for groups if you have groups with the same name in different visual root scopes. DropDownButton
(and thus alsoSplitButton
) now inherit fromItemsControl
instead ofMenuBase
.
This was changed becauseMenuBase
causes a lot of issues regarding keyboard navigation, focus etc..
This also means that you should useFluent:MenuItem
instead of the system providedMenuItem
as immediate children ofDropDownButton
andSplitButton
.SplitButton
now generates twoKeyTip
elements for itself. If you previously used "S" asKeyTip
there will now be "S1" for the button action and "S2" will open the dropdown.- Changes made to
Ribbon
- Internal properties for
QuickAccessToolBar
andTabControl
got converted toDependencyProperty
- Changed order of Children returned from
LogicalChildren
- Type of metadata for
Menu
andStartScreen
changed fromPropertyMetadata
toFrameworkPropertyMetadata
- Internal properties for
- 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 fromvoid
toKeyTipPressedResult
. - The following
Color
andBrush
resources got replaced/renamed/removed:
- #466 - StrongName signed assembly? Hey, it's 2017...
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 |
ScrollButtonDefaultBorderBrush | Fluent.Ribbon.Brushes.ScrollButton.Default.BorderBrush |
ScrollButtonDefaultBackgroundBrush | Fluent.Ribbon.Brushes.ScrollButton.Default.Background |
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 | Fluent.Ribbon.Brushes.ScrollBar.Background |
ScrollVerticalBackgroundBrush | Fluent.Ribbon.Brushes.ScrollBar.Background |
ScrollThumbDefaultBorderBrush | Fluent.Ribbon.Brushes.ScrollThumb.Default.BorderBrush |
ScrollThumbDefaultBackgroundBrush | Fluent.Ribbon.Brushes.ScrollThumb.Default.Background |
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 | is now the default style |
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 fixRibbonTabControl.GetFirstVisibleItem
was renamed toRibbonTabControl.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
andRenderTransform
can now be used directly onRibbonWindow
as this now gets forwarded to the first template child of the window. Have a look atTestWindow
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 calledUpdateKeyTipsAction
which accepts an instance ofQuickAccessToolBar
through which you can create your own keytips for items in the toolbar.
Look at the UnitTestQuickAccessToolBarTests.TestCustomKeyTips
for a sample. - #313 - Window state buttons not updating to Windows 10 look / feel
- #417 - Keytips for Splitbuttons
You now get 2 KeyTips forSplitButton
. One for the main action button and one for the dropdown. Those KeyTips get generated by append "A" and "B" to the originalKeyTip
. - #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 onRibbon
and tranferred toRibbonTabControl
from there - #443 - Release .NET 4.6.2 version
- #444 - Add
IgnoreTaskbarOnMaximize
toRibbonWindow
- #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 usingIsMouseWheelScrollingEnabled
onRibbon
- #484 - Add special style/template for MenuItem with set description
- #488 - Display border around content area of RibbonTabControl
You can now useFluent.Ribbon.Values.RibbonTabControl.Content.BorderThickness
to control the thickness of the border around the content area ofRibbonTabControl
- #494 - How to align controls such as ToggleButton, Spinner with text
You can now opt in to align the headers of controls likeComboBox
orSpinner
which are placed in the same column of aRibbonGroupBox
by addingGrid.IsSharedSizeScope="True"
to aRibbonGroupBox
.
You can opt out of this behavior for single controls in that column by addingFluent:RibbonGroupBoxWrapPanel.ExcludeFromSharedSize="True"
to that control.
Documentation can be found at http://fluentribbon.github.io/documentation/concepts/sizing#aligningControls - #495 - Add option disable handling of KeyTips
You can now disable handling of all KeyTips by settingIsKeyTipHandlingEnabled
onRibbon
toFalse
. - #503 - Add IsDefinitive property to GalleryItem (thanks @noctis0430)