Skip to content
Jan Karger edited this page Feb 14, 2018 · 2 revisions

1.6.0 Notes

Features / Changes / Improvements (most interesting)

  • New: MahApps.Metro.Styles.MetroWatermarkTextBlock style to make it easier to set custom properties like FontFamily or FontSize for all Watermarks.
  • New: Replacing WindowChrome and related things with reference to ControlzEx #3021
  • NumericUpDown
    • New: SnapToMultipleOfInterval property for NumericUpDown which indicates if the NumericUpDown should round the value to the nearest possible interval when the focus moves to another element. #2952 @xxMUROxx
    • New: NumericInputMode property with the new flag enumeration NumericInput (default is NumericInput.All)
    • Mark HasDecimals as obsolete
    • Block scientific input if only numbers allowed
    • Fix: NumericUpDown, HotKeyBox and TimerPickerBase doesn't focus for the first time when the FocusManager will be used.
  • New: Changing popup border thickness and padding for ComboBox via resource keys
    • ComboBoxBorderThemeThickness (default 1)
    • ComboBoxPopupBorderThemeThickness (default 1)
    • ComboBoxPopupBorderThemePadding (default 1)
  • New: Changing the header padding for GroupBox and Expander via resource keys
    • GroupBoxHeaderThemePadding (default 4)
    • ExpanderHeaderThemePadding (default 2)
    • ExpanderToggleButtonEllipseThemeSize (default 18)
  • New: Badged control has now a different look when disabled. thx @xxMUROxx
    • New brush for light and dark themes: MahApps.Metro.Brushes.Badged.DisabledBackgroundBrush
  • Watermark
    • Use TextBoxHelper.Watermark for HotKeyBox instead own DependencyProperty (marked as obsolete).
    • Allow TextBoxHelper.AutoWatermark for HotKey DependencyProperty of HotKeyBox.
    • New: TextBoxHelper.WatermarkTrimming attached property to set the text trimming behavior to employ when (floating) watermark overflows the content area. thx to @amkuchta
    • New: TextBoxHelper.WatermarkWrapping attached property (only for TextBox) to set how the watermark should wrap text. Default is binded to TextWrapping property. thx to @amkuchta
  • VS Theme
    • New: StandardGroupBox style
    • New: StandardExpander style
  • TabControlHelper
    • New: TabControlHelper.CloseButtonEnabled attached property to show / hide the close button (default is true).
    • New: TabControlHelper.CloseTabCommand attached property which executes if the TabItem will be closed.
    • New: TabControlHelper.CloseTabCommandParameter attached property which will be passed to the CloseTabCommand.
  • New: Add TextBoxHelper.ButtonsAlignment support for PasswordBox styles #3074 @waleswood
  • New: MetroHeader control which can contains any other content and can display a header on top of this content.
    2017-10-11_15h58_35 2017-10-11_16h04_32
     <Controls:MetroHeader Margin="2" Header="TextBox Header">
         <Controls:MetroHeader.HeaderTemplate>
             <DataTemplate>
                 <StackPanel VerticalAlignment="Center" Orientation="Horizontal">
                     <iconPacks:PackIconMaterial VerticalAlignment="Center" Kind="FaceProfile" />
                     <TextBlock Margin="2 0 0 0"
                                VerticalAlignment="Center"
                                Text="{Binding}" />
                 </StackPanel>
             </DataTemplate>
         </Controls:MetroHeader.HeaderTemplate>
         <TextBox Text="Enabled" />
     </Controls:MetroHeader>
    
  • New: ScrollViewerHelper class
    • New: IsHorizontalScrollWheelEnabled attached property. If it's set to true and a horizontal ScrollBar is visible then the mouse wheel scrolls to left and right.
    • Change: VerticalScrollBarOnLeftSide attached property from ScrollBarHelper to ScrollViewerHelper. ScrollBarHelper is now marked as obsolete.
  • New: Use FlatButtonForegroundBrush in the new MahApps.Metro.Styles.FlatButtonFocusVisualStyle which is used now for MetroFlatButton and MetroFlatToggleButton
  • PasswordBoxHelper
    • New: RevealButtonContent and RevealButtonContentTemplate attached properties
    • Set the DefaultRevealButtonIcon ContentControl to RevealButtonContent attached property
  • Change: Use the original Win 10 close button style
    • New: MahApps.Metro.Styles.WindowButton.Close.Light.Win10 and MahApps.Metro.Styles.WindowButton.Close.Dark.Win10 styles
      2017-12-30_17h03_11
      2017-12-30_17h04_19
      2017-12-30_17h04_25
  • New: ItemHelper class with some Brush attached properties for mouse interaction. These properties can be used with HamburgerMenuItem, ListBoxItem, ListViewItem, TreeViewItem and ComboBoxItem.
    • ItemHelper.ActiveSelectionBackgroundBrush default AccentColorBrush
    • ItemHelper.ActiveSelectionForegroundBrush default AccentSelectedColorBrush
    • ItemHelper.DisabledBackgroundBrush default x:Null
    • ItemHelper.DisabledForegroundBrush default GrayNormalBrush
    • ItemHelper.DisabledSelectedBackgroundBrush default GrayBrush7
    • ItemHelper.DisabledSelectedForegroundBrush default AccentSelectedColorBrush
    • ItemHelper.HoverBackgroundBrush default AccentColorBrush3
    • ItemHelper.HoverSelectedBackgroundBrush default AccentColorBrush
    • ItemHelper.SelectedBackgroundBrush default AccentColorBrush2
    • ItemHelper.SelectedForegroundBrush default AccentSelectedColorBrush
  • ToggleSwitch
    • New: ContentPadding dependency property to change the padding of the inner content in an easy way.
  • HamburgerMenu
    • Renaming (internal used styles):
      • HamburgerListBoxItemStyle -> HamburgerMenuItemStyle
      • HamburgerListBoxStyle -> HamburgerMenuListStyle
    • Revert back to UWPCommunityToolkit style (update template to keep options visible)
      • Move template to HamburgerMenuTemplate resource dictionary
      • Add margins
      • Vertically stretch the menu items of the hamburger menu
    • Change inner ListBox scrolling (to CanContentScroll)
    • New: Add ItemContainerStyle and OptionsItemContainerStyle properties. This makes it easier to change the inner styles for the items (and option items)
    • MinHeight of the menu items should be 0
    • Change: HamburgerMenuImageItem: Downgrade thumbnail property from BitmapImage to subclass ImageSource
    • New: Introduce ItemInvoked event (as an alternative to ItemClick and OptionsItemClick)
    • New: SelectionIndicator (rectangle) which can be enabled with the new ShowSelectionIndicator dependency property
      • New: resource key HamburgerMenuSelectionIndicatorThemeWidth default 6
      • New: resource key HamburgerMenuSelectionIndicatorThemeHeight default 24
    • Improved item FocusVisualStyle
      • Add new (readonly) ItemFocusVisualStyle dependency property which will be re-created if one of these properties are changed: OpenPaneLength, CompactPaneLength and IsPaneOpen. Default template is HamburgerMenuItemFocusVisualTemplate.
      • This FocusVisualStyle can be override at the HamburgerMenuItem style by setting the FocusVisualStyle property.
    • Change: Reorganize Hamburger sample: shows now Default style, Creators Update style and a sample with the MaterialDesignInXaml Ripple control
    • Fix: Set a selected Item only if there is no content set
    • Add HamburgerMenu resources to Control styles to allow style manipulation and fix binding expression infos
    • Fix: PanePlacement handling for right aligned
    • New: Add ToolTip DependencyProperty for HamburgerMenuItem mahapps_hamburger_right
      mahapps_hamburger
      2018-01-08_16h34_14
      2018-01-08_16h34_19
      2018-01-08_16h34_22
  • Dialogs
    • New: Create new style for Dialogs MahApps.Metro.Styles.MetroDialog and set this as default
    • Add BaseMetroDialog resources to Control styles to allow easier dialog style manipulation
    • Fix: Do not load all MahApps styles in code behind again (this is not necessary anymore, since it's now at Style level too)
    • Fix: Inverted Dialogs theme (the background wasn't correct)
    • New: Add ProgressDialogController.SetProgressBarForegroundBrush(Brush) so that you can customize a progress dialog's progress bar foreground Brush.
  • MetroWindow (Dialogs)
    • Add a new (readonly) IsAnyDialogOpen dependency property. This property will be updated if a dialog is shown or not.
    • New: OwnerCanCloseWithDialog property at MetroDialogSettings which can be used to handle how the owner of the dialog can be closed.
    • New: IsCloseButtonEnabledWithDialog property at MetroWindow which indicates if the close button should be enabled or not if a dialog is shown.
    • The HandleOverlayOnHide and HandleOverlayOnShow methods sets the IsCloseButtonEnabledWithDialogPropertyKey and restores focus if needed
    • New: OverlayFadeIn and OverlayFadeOut properties to set/override the overlay fade in/out Storyboards which are used for the Dialogs
    • Fix: Fade in and out animation was wrong if no duration exists
    • Fix: HideMetroDialogAsync fails sometimes to close dialog (async call order)
  • New: Win10 Slider style: MahApps.Metro.Styles.Slider.Win10
    • Control template: MahApps.Metro.Styles.Slider.HorizontalTemplate.Win10, MahApps.Metro.Styles.Slider.VerticalTemplate.Win10
    • RepeatButton: MahApps.Metro.Styles.Slider.HorizontalTrack.Win10, MahApps.Metro.Styles.Slider.VerticalTrack.Win10
    • Thumb: MahApps.Metro.Styles.Slider.Thumb.Win10
      2018-01-21_19h23_50
      mahapps_slider_win10
  • New: Normal Slider style: MahApps.Metro.Styles.Slider (mark old as obsolete)
    • Control template: MahApps.Metro.Styles.Slider.HorizontalTemplate, MahApps.Metro.Styles.Slider.VerticalTemplate
    • RepeatButton: MahApps.Metro.Styles.Slider.HorizontalTrack, MahApps.Metro.Styles.Slider.VerticalTrack
    • Thumb: MahApps.Metro.Styles.Slider.Thumb
  • New: Win10 RangeSlider style: MahApps.Metro.Styles.RangeSlider.Win10
    • Control template: MahApps.Metro.Styles.RangeSlider.HorizontalTemplate.Win10, MahApps.Metro.Styles.RangeSlider.VerticalTemplate.Win10
    • RepeatButton: MahApps.Metro.Styles.Slider.HorizontalTrack.Win10, MahApps.Metro.Styles.Slider.VerticalTrack.Win10
    • Thumb: MahApps.Metro.Styles.Slider.Thumb.Win10, MahApps.Metro.Styles.RangeSlider.HorizontalMiddleThumb.Win10, MahApps.Metro.Styles.RangeSlider.VerticalMiddleThumb.Win10
      mahapps_rangeslider_win10
  • New: Normal RangeSlider style: MahApps.Metro.Styles.RangeSlider
    • Use SliderHelper brush properties also for RangeSlider
    • Thump styles for the middle part: MahApps.Metro.Styles.RangeSlider.HorizontalMiddleThumb, MahApps.Metro.Styles.RangeSlider.VerticalMiddleThumb
    • Use MetroThumb instead Thumb
    • Set ReservedSpace for all TickBar controls instead Margin
  • SliderHelper: Add new attached properties for all possible Brushes
    • Allow SliderHelper.EnableMouseWheel and SliderHelper.ChangeValueBy for RangeSlider too.
    • Default Win10 Slider brushes
      • SliderHelper.ThumbFillBrush default AccentBaseColorBrush
      • SliderHelper.ThumbFillHoverBrush default GrayBrush3
      • SliderHelper.ThumbFillPressedBrush default AccentBaseColorBrush
      • SliderHelper.ThumbFillDisabledBrush default GrayBrush1
      • SliderHelper.TrackFillBrush default GrayBrush2
      • SliderHelper.TrackFillHoverBrush default AccentBaseColorBrush
      • SliderHelper.TrackFillPressedBrush default GrayBrush6
      • SliderHelper.TrackFillDisabledBrush default GrayBrush3
      • SliderHelper.TrackValueFillBrush default AccentBaseColorBrush
      • SliderHelper.TrackValueFillHoverBrush default GrayBrush6
      • SliderHelper.TrackValueFillPressedBrush default GrayBrush6
      • SliderHelper.TrackValueFillDisabledBrush default GrayBrush6
    • Default Slider brushes
      • SliderHelper.ThumbFillBrush default GrayBrush2
      • SliderHelper.ThumbFillHoverBrush default GrayBrush3
      • SliderHelper.ThumbFillPressedBrush default AccentColorBrush
      • SliderHelper.ThumbFillDisabledBrush default GrayBrush5
      • SliderHelper.TrackFillBrush default GrayBrush3
      • SliderHelper.TrackFillHoverBrush default AccentColorBrush
      • SliderHelper.TrackFillPressedBrush default GrayBrush2
      • SliderHelper.TrackFillDisabledBrush default GrayBrush3
      • SliderHelper.TrackValueFillBrush default AccentColorBrush
      • SliderHelper.TrackValueFillHoverBrush default GrayBrush6
      • SliderHelper.TrackValueFillPressedBrush default GrayBrush6
      • SliderHelper.TrackValueFillDisabledBrush default GrayBrush6
  • DatePicker
    • New: Add new dependency property ControlsHelper.IsReadOnly. This property sets the IsReadOnly property on the inner TextBox and the IsEnabled on the inner popup button.

Strong naming

MahApps will no longer be strong-named beginning with this version. #3029

Why?

Strong-named assemblies are only useful in some rare scenarios. If you need strong-named assembly then you can compile the source by yourself ore use the Strong Namer from Daniel Plaisted @dsplaisted or Strong-Name Signer from Werner van Deventer @brutaldev.

More informations about the reason of this decision can be found here:

Commits without PRs/Issues

  • 69afa65e Adopt SpellCheck.IsEnabled changes from MaterialDesignInXamlToolkit @ButchersBoy #650 Removes the extra hidden classes and enables flexible style changes, it's more WPF now.
  • 15bbe66d Inherit FontFamily and FontSize for CalendarDayButton and CalendarButton from Calendar.
  • 2c97fd4e Fix: Brushes for MetroProgressBar
  • 5c4471c3 Use DynamicResource for all brushes and freeze it too.
  • 8c0f893f Fix: MetroProgressBar does not work inside ControlTemplate
  • c900c5bd Check for RootVisual in GlowWindowBehavior
  • ad16dc30 ResizeBorderThickness must also be set to 0 on maximize
  • 6943cc92 Use PropertyChangeNotifier from ControlzEx
  • 7ea7a7c7 Removing trigger for ResizeBorderThickness as it's handled by ControlzEx
  • 44c23637 Fix possible System.Windows.Data warning for ComboBoxItem, if a ComboBox is inside a ContentControl.
  • edc34679 FlipView: Bind ItemStringFormat to ContentStringFormat
  • 2c1c692b Fix not updating the text of TimePicker and DateTimePicker after changing the culture
  • e54aaaf1 Use DialogTitleFontSize and DialogMessageFontSize via DynamicResource at the base MetroDialog style
  • 9071379b Closing main demo was wrong (TaskCanceledException)
  • 4253d89f Set HorizontalScrollBarVisibility and VerticalScrollBarVisibility for HotKeyBox and NumericUpdDown to Hidden, cause the inner TextBox has this as default too
  • 713cb69b Slider: remove linear gradient brush from horizontal and vertical track value style. RangeSlider: fix margin of the middle thumb.