Fluent.Ribbon v7.0.0 Release Notes
Release Date: 2019-09-29 // over 4 years ago-
Breaking changes
- [#471](../../issues/471) - Drop support for .Net 4.0
- Reverted [#466](../../issues/466) - StrongName signed assembly?
Assemblies are strong named again, butAssemblyVersion
is now fixed for every major release.
This means that, for example, for version7.1
theAssemblyVersion
will still be7.0
.
Other versions likeAssemblyFileVersion
etc. won't be fixed. - [#515](../../issues/515) - Switch to new csproj format and require VS2017 for development
- [#545](../../issues/545) - SplitButton.IsChecked is not bound 2 way by default
- Due to [#549](../../issues/549)
RibbonGroupBox.Header
is now of type object andRibbonGroupBox
now inherits fromHeaderedItemsControl
instead ofItemsControl
.
Please have a look at the documentation for details. - Removed
CornerRadius
everywhere except in all controls related toApplicationMenu
. - Default
Foreground
forComboBox
changed fromInherited
toFluent.Ribbon.Brushes.LabelTextBrush
. - Default
VerticalContentAlignment
forComboBox
,Spinner
andTextBox
changed fromTop
toCenter
. - Key tips can not be opened by pressing
Space
anymore. - [#574](../../issues/574) - Move backstage animations from BackstageTabControl to Backstage .
Backstage.IsOpenAnimationEnabled
got renamed toBackstage.AreAnimationsEnabled
. This also applies toStartScreen
.Backstage.HideAnimationDuration
got removed. This also applies toStartScreen
.- Default value of dependency property
Backstage.HideContextTabsOnOpen
is nowtrue
. The default value from style was already set totrue
. So this should only be a breaking change for you if you did not use the default style forBackstage
. - Default value for
Foreground
ofRibbonTabItem
is nowFluent.Ribbon.Brushes.RibbonTabItem.Foreground
instead ofFluent.Ribbon.Brushes.RibbonTabItem.Selected.Foreground
because trigger order was fixed in [#578](../../issues/578). GlassFrameThickness
was removed in favor of the newGlowWindowBehavior
. Thus you can now useGlowBrush
andNonActiveGlowBrush
onRibbonWindow
. The resize border now also works "outside" of the window.
This fixes [#307](../../issues/307), [#319](../../issues/319) and [#556](../../issues/556).- The default value for
TabItemSelectedForeground
onRibbonContextualTabGroup
is now bound toFluent.Ribbon.Brushes.RibbonContextualTabGroup.TabItemSelectedForeground
. Previously this was bound toForeground
ofRibbonContextualTabGroup
. - The default value for
TabItemMouseOverForeground
onRibbonContextualTabGroup
is now bound toFluent.Ribbon.Brushes.RibbonContextualTabGroup.TabItemMouseOverForeground
. Previously this was bound toFluent.Ribbon.Brushes.HighlightBrush
orBlackBrush
. - The default value for
Fluent:RibbonProperties.MouseOverForeground
onRibbonTabItem
is now bound toFluent.Ribbon.Brushes.RibbonTabItem.MouseOver.Foreground
. Previously this was bound toFluent.Ribbon.Brushes.HighlightBrush
orBlackBrush
. - [#596](../../issues/596) - Breaking changes in theming
The theming got rewritten this means that there is no longer a separation betweenAppTheme
andAccent
. These got replaced byTheme
.
Instead of something likepack://application:,,,/Fluent;component/Themes/Colors/BaseLight.xaml
andpack://application:,,,/Fluent;component/Themes/Accents/Cobalt.xaml
you now have to usepack://application:,,,/Fluent;component/Themes/Themes/Light.Cobalt.xaml
. The wordsAppTheme
andAccent
are replaced byTheme
everywhere. - The target type for
Fluent.Ribbon.Styles.MenuItem
(previously namedFluentDefaultSystemMenuItemStyle
) now isFluent:MenuItem
instead ofMenuItem
- Instead of depending on
System.Windows.Interactivity
we now depend on the open source versionMicrosoft.Xaml.Behaviors.Wpf
- [#650](../../issues/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 typeDrawingImage
instead ofBitmapImage
. - The filename inside
IsolatedStorageFile
for the defaultRibbonStateStorage
is now "Fluent.Ribbon.State." + Hex value of MD5 instead of "Fluent.Ribbon.State.2.0." + hex value ofGetHashCode
. This was done becauseGetHashCode
does not return a stable value, especially on .NET core 3.0. RibbonTabItem.Indent
was replaced byRibbonTabItem.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](../../issues/165) - Save As menu is added to QAT but does not have child items
- [#307](../../issues/307) - Black flicker on complete window-area when resizing
- [#319](../../issues/319) - How to make window resizable with Win32 content?
- [#535](../../issues/535) - BorderBush on bottom of RibbonTabItem (and Ribbon)
- [#536](../../issues/536) - RibbonContextualTabGroup header text trimmed until hovered
- [#542](../../issues/542) - InRibbonGallery not reducing properly
- [#543](../../issues/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](../../issues/551) - "Auto" size for ribbon group box header to support custom font sizes (thanks @chrfin)
- [#552](../../issues/552) - RibbonGroupBox should resize when font family or size are changed
- [#556](../../issues/556) - Wrong Window Resize-Border Sensitivity
- [#562](../../issues/562) - Pressing "right" arrow key to open submenu on menuitem causes NullRef exception when there is no submenu
- [#564](../../issues/564) - Gallery overflow panel (with menu items) doesn't close when clicking once in the application
- [#572](../../issues/572) - KeyTip.Keys Position
- [#573](../../issues/573) - Empty context menu on controls and ribbon
- [#576](../../issues/576) - Does RibbonGroupBox set Foreground invalid?
- [#581](../../issues/581) - StackOverflow Exception when trying to access ApplicationMenu while RibbonMenu is minimized
- [#586](../../issues/586) - BackstageTabItem IsEnabled=False still displays content
- [#587](../../issues/587) - DisplayMemberPath no longer working on DropDownButton/MenuItem as of version 6.0
- [#593](../../issues/593) - Disable state selected in InRibbonGallery after click
- [#594](../../issues/594) - Keep title in the same location when opening the backstage
- [#602](../../issues/602) - Pin button not clickable when Ribbon in collapsed state
- [#607](../../issues/607) - Submenu contained in DropDownButton closes too slow
- [#616](../../issues/616) - ContextMenu auto hidden after right click (related to [#439](../../issues/439))
- [#632](../../issues/632) - Ribbon sometimes clips over other applications
- [#637](../../issues/637) - Escape key doesn't close menu on data-bound DropDownButton
- [#638](../../issues/638) - Setting AreTabHeadersVisible="False" on startup makes entire ribbon disappear
- [#639](../../issues/639) - Group headers take focus when tabbing through with keyboard
- [#653](../../issues/653) - Incorrect context menu of Fluent:TextBox
- [#656](../../issues/656) - Backstage icons not showing
- [#659](../../issues/659) - Fix Dutch localization errors (thanks @carloslubbers)
- [#660](../../issues/660) - ContextualTabs visibility problem
- [#662](../../issues/662) - Backstage/StartScreen closing if clicking outside of Application
- [#663](../../issues/663) - Fluent:ApplicationMenu not closing on outside click after opening context menu.
- [#666](../../issues/666) - InRibbonGallery DropDown not layouting correctly
- [#673](../../issues/673) - RibbonContextualTabGroup not shown
- [#677](../../issues/677) - Alt Codes no longer working in alpha version v7.0.0
- [#688](../../issues/688) - Backstage and StartScreen closing when pressing Alt
- [#698](../../issues/698) - Submenus in the application menu are not opened each time
- [#704](../../issues/704) - CheckBox.Header - InvalidCastException
- [#705](../../issues/705) - ApplicationMenu header can't be set to text
- [#714](../../issues/714) - ResizeMode="NoResize" and ShowInTaskbar="False" causes crash on startup
- [#722](../../issues/722) - NullReferenceException in KeyTipService.OnAdornerChainTerminated
- [#730](../../issues/730) - Add null check for Application.Current to ThemeManager (thanks @Evangelink)
Enhancements/Features
- [#516](../../issues/516) - Add options to hide the row containing RibbonTabItems
You can achieve this by: - Setting
Ribbon.Menu
tonull
(or never assigning anything) - Setting
Ribbon.CanMinimize
tofalse
- Setting
Ribbon.AreTabHeadersVisible
tofalse
- Setting
Ribbon.IsToolBarVisible
tofalse
- [#533](../../issues/533) - Issue when using templated ribbon items
- [#544](../../issues/544) - Add proper DPI support for icons/images aquired through ObjectToImageConverter on .NET 4.6.2
- [#549](../../issues/549) - Implement RibbonGroupBox header template
- [#553](../../issues/553) - Introduce resources for CaretBrush and SelectionBrush for TextBox
- [#554](../../issues/554) - No Keytips on templated ribbon items.
- [#563](../../issues/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 atRibbon.KeyTipKeys
. - [#568](../../issues/568) - Allow setting the height of GalleryPanel inside InRibbonGallery
You can now control the height of theGalleryPanel
insideInRibbonGallery
by settingGalleryPanelContainerHeight
. - [#578](../../issues/578) - Theming of selected context ribbon tab
You can now useFluent.Ribbon.Brushes.RibbonWindow.TitleBackground
,RibbonContextualTabGroup.TabItemSelectedForeground
andRibbonContextualTabGroup.TabItemMouseOverForeground
to further control colors. - [#590](../../issues/590) - SplitButton custom KeyTip
You can now usePrimaryActionKeyTipPostfix
andSecondaryActionKeyTipPostfix
onSplitButton
to control the postfix for key tips. - [#592](../../issues/592) - Disable context menu on Ribbon
You can now useIsDefaultContextMenuEnabled
onRibbon
to disable the default context menu. - [#599](../../issues/599) - MahApps.Metro dialog on backstage
You can now useUseHighestAvailableAdornerLayer
onBackstage
to improve interop with MahApps.Metro regarding dialogs above the backstage. - [#606](../../issues/606) - added non-generated Colorful.Blue and Colorful.Gray themes (thanks @stylefish)
- [#635](../../issues/635) - Quick access menu arrow customization
- [#640](../../issues/640) - Narrator doesn't read out button headers
- [#642](../../issues/642) - Ignore Alt Gr key, by blacklisting modifier keys, in KeyTips detection (thanks @stylefish)
- [#692](../../issues/692) - Add dedicated secondary KeyTip on SplitButton
You can now useSecondaryKeyTip
onSplitButton
for the secondary key tip. IfKeyTip
is empty or null only theSecondaryKeyTip
will be used. - [#696](../../issues/696) - Adding Greek language translations (thanks @b-karamichael)
- [#516](../../issues/516) - Add options to hide the row containing RibbonTabItems