Fork me on GitHub

News

Version 1.6.1

As part of this release we had 4 commits which resulted in 2 issues being closed.

Bugs

  • #3202 NU1602 Build Warning in 1.6.0
  • #3193 Fixing branch name for appveyor badges

Where to get it

You can download this release from MahApps.Metro

Version 1.6.0

As part of this release we had 362 commits which resulted in 153 issues being closed.

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.

Bugs

  • #3185 Fix for (GH-3039) NumericUpDown
  • #3181 Reorganize the Sliders and Progress examples with some fixes…
  • #3176 (GH-3175) MetroWindow: use BorderThickness as Margin for inner window content
  • #3175 Window contents cut off by 1px
  • #3171 NumericUpdOwn LostFocus text validation
  • #3168 NumericUpDown.StringFormat not working via Code behind
  • #3166 Bug On NumericUpDown
  • #3162 WIP MetroWindow: OverlayFadeIn / OverlayFadeOut
  • #3161 HamburgerMenu: correct PanePlacement handling
  • #3160 Fix not focusing custom controls via FocusManager
  • #3159 MetroThumbContentControl: Catch possible exception and trace it
  • #3156 Fixed issue #3155 “GridViewColumnHeader uses twice the padding”!
  • #3155 GridViewColumnHeader uses twice the padding
  • #3152 Fix overriding (Metro)TabItem controltemplate/style
  • #3150 Templated MetroDialog alignment
  • #3148 Fix loaded content at HamburgerMenu
  • #3146 Fix for WindowsSettingBehaviour and possible AssociatedObject Nullreference
  • #3145 Fix for #3143 Flyout’s header not binding to XmlProvider
  • #3143 Flyout’s header not binding to XmlProvider
  • #3142 Fix Dialogs Resource handling
  • #3140 System.InvalidOperationException: Ten element Visual nie jest połączony z PresentationSource.
  • #3131 WindowSettings.SaveWindowState ConfigurationErrorsException
  • #3129 Override MetroTabItem controltemplate with close button
  • #3126 Fix MultiFrameImage: frame selection in NoScaleSmallerFrame mode
  • #3121 (#3101) Fix disabled Foreground for MahApps.Metro.Styles.MetroCircleButtonStyle
  • #3120 (#3109) Fix NullReferenceException when using Flyout with theme
  • #3119 (#3118) Fix for dark theme FlatButton FocusVisualStyle Foreground
  • #3118 Fix for dark theme flat button FocusVisualStyle
  • #3110 Fixes 3107.
  • #3109 NullReferenceException When using Flyout With Theme
  • #3107 Object reference not set to an instance of an object.
  • #3106 HamburgerMenu control: still just a demo?
  • #3104 SplitView doesn’t work with Caliburn.Micro ActivateItem(xxx)
  • #3101 MetroCircleButtonStyle not fading inner icon when button is disabled
  • #3091 Fix #3010 IsTabStop for HamburgerMenu
  • #3090 Fix NumericUpDown Issue #3086
  • #3089 Setting HamburgerMenu.SelectedIndex or Item cause the lost of its content
  • #3086 NumericUpDown CornerRadius Border issue.
  • #3082 Fix wrong caret index for revealed PasswordBox
  • #3079 Incorporate Grey Color Into BaseLight & BaseDark
  • #3078 Not All “Grey” Values Are Set in BaseLight/BaseDark
  • #3076 Fix for Floating watermak field doesn’t fit according to floating watermark FontSize
  • #3068 AutoWatermark attached property has no effect on HotKeyBox
  • #3067 Right aligned floating Watermark goes behind clear button
  • #3066 Don’t catch TextChangedEvent in NumericUpDown
  • #3060 Fix for TextBox GPU memory leak
  • #3054 WindowsSettingBehaviour broken after using ControlzEx
  • #3050 Allow TimePicker to parse times with an AM/PM.
  • #3049 TimePicker fails to parse times with an AM/PM.
  • #3046 Update TextBoxHelper.cs
  • #3045 Clicking on the “X” button added by TextBoxHelper.ClearTextButton does not clear the databinding target
  • #3043 Width parse error
  • #3042 NumericUpDown Focus doesn’t work if set through FocusManager
  • #3039 NumericUpDown
  • #3038 Update from Version 0.13.1 to a higher one
  • #3034 GlowBrush=”{DynamicResource AccentColorBrush}” is causing a ComponentModel Exception in UpdateCore
  • #3031 NumericUpDown do not fire at certain conditions
  • #3028 SaveWindowPosition causes application to crash
  • #3026 NumericUpDown didn’t update when lost focus, StringFormat has no effect to the content string
  • #3025 ComboBox popup border thickness problem
  • #3023 Custom Dialog Theme Issue
  • #3022 HideMetroDialogAsync sometimes fails to close dialog
  • #3017 SplitButton with custom ItemTemplate - Source change does not always update layout
  • #3013 ListView (ListBox) - Undeletable Top Padding
  • #3010 HamburgerMenu ignores Focusable and IsHitTestVisible properties
  • #3009 Floating Watermak field doesn’t fit according FontSize
  • #3001 DatePicker padding do not work
  • #3000 Empty Watermark leaves blank border on date time controls
  • #2999 Using OrdinalIgnoreCase instead of InvariantCultureIgnoreCase in ThemeManager
  • #2997 [Fix] WPF-BindingLeak: Bind to property of non INotifyPropertyChanged without using BindingMode.OneTime
  • #2996 Mahapps window steals focus
  • #2992 Fixing a few issues in ThemeManager
  • #2991 Enable LayoutTransform and RenderTransform on MetroWindow
  • #2990 TextBox memory leak
  • #2985 TimePicker 24hour format selection
  • #2983 NumericUpDown Internal Text Doesn’t Update When Expected
  • #2972 ThemeManager.ChangeAppStyle from separate thread doesn’t take effect every 4th time
  • #2966 [Only visual] PasswordBox bug
  • #2963 WindowCommands with ItemTemplateSelector not working
  • #2962 MetroStatusBar Style and Prism RegionManager
  • #2958 NumericUpDown: If HasDecimals is set to false and StringFormat was bound, HasDecimals will be set to true after unloading and loading the control
  • #2956 property ToolTip of ProgressRing does not work
  • #2954 add contentstringformat to contentpresenter in controls.radiobutton.xaml
  • #2953 Can’t run MahApps 1.5.0 Caliburn Demos on VS2015
  • #2951 Window with showactivated=false and sizetocontent=WidthAndHeight is activated in Mahapps.Metro v1.5
  • #2938 DataGridNumericUpDownColumn StringFormat binding
  • #2937 Fuzzy button outline
  • #2933 Hamburguer menu issue
  • #2926 IsPaneOpen property in Hamburger Menu is not properly set after opening/closing pane
  • #2813 ControlTemplate and Style are not applied to the CustomDialog
  • #2806 Async Content Dialog is not always blocked
  • #2753 Race condition in ShowMetroDialogAsync/HideMetroDialogAsync
  • #2745 Why change App Style in Flyout if the theme Adapt is chosen?
  • #2731 Keep BorderThickness on maximize if necessary
  • #2622 DateTimePicker - Format
  • #2468 DialogCoordinator.ShowMessageAsync Button Accent
  • #2463 [accessibility] Dialogs and screen reader
  • #1678 Pivot control does not work with BaseDark style

Features

  • #3178 Add ability to set progress dialog progress bar brush color
  • #3177 HamburgerMenuItem ToolTip Implementation
  • #3170 DatePicker IsReadOnly
  • #3165 Add new Win10 Slider style
  • #3158 NumericUpDown: Add a new property to handle the allowed numeric input
  • #3153 WIP Handle CloseButton together with ShowDialogsOverTitleBar
  • #3151 New IsAnyDialogVisible dependency property for MetroWindow
  • #3149 Add FlyoutAutomationPeer for better CodedUI support
  • #3147 Add basic MetroDialog AutomationPeers
  • #3134 HamburgerMenu and Item selection/hover brush improvements
  • #3133 Use the original Win 10 close button style
  • #3122 (#3105) Allow to change the RevealButton Icon in the PasswordBox
  • #3087 New ScrollViewerHelper class with IsHorizontalScrollWheelEnabled
  • #3077 Add new MetroHeader control
  • #3074 add “PasswordBox” support “ButtonsAlignment”
  • #3073 VS Theme TabItem enhancements
  • #3072 Add missing VS StandardExpander style
  • #3071 Add missing VS GroupBox style
  • #3069 Watermark fixes and improvements
  • #3021 Replacing WindowChrome and related things with reference to ControlzEx
  • #3014 Resolved #2619
  • #2975 Creators Hamburger Menu
  • #2935 It is now possibile to set FontFamily to DateTimePicker.
  • #2930 DisplayFormat in DateTimePicker and TimePicker
  • #2467 Added Canceled Result To MessageDialogResut
  • #2423 Added the habilitiy to block the use of the scientific notation ‘e’.

Feature Requests

  • #3169 HamburgerMenuIconItem ToolTip
  • #3105 [Enhancement] Allow to change the Reveal Icon in the PasswordBox
  • #3100 HorizontalAlignment of BaseMetroDialog content
  • #3084 MetroAnimatedSingleRowTabControl Scrollbar issue
  • #3070 VS GroupBox style
  • #2979 [Request]Win 10 Fluent Design Hamburger Menu
  • #2977 Badge must have a different look when disabled
  • #2952 NumericUpDown snap to interval
  • #2931 [Request]Win 10 Creators Update Hamburger Menu
  • #2889 [Feature Request] Watermark Wrapping
  • #2884 [Feature Request] Watermark Trimming
  • #2882 Titlebar Close command does not work with ShowDialogsOverTitleBar=False
  • #2879 [Feature request] Ticks property for the RangeSlider
  • #2825 Shorten Dialog Show/Hide animation duration
  • #2527 Coded UI Testing in not working Properly on this UI
  • #2491 Question: Changing font style for watermark
  • #2422 Added the habilitiy to block the use of the scientific notation ‘e’ on NumericUpDown.
  • #1731 VS Theme TabItem Question
  • #957 Expander icon in VS theme

Where to get it

You can download this release from MahApps.Metro

Version 1.5.0

Features / Changes / Fixes

  • If a dialog is shown in a window other than the MainWindow, OwningWindow will be used if available to detect the theme. #2840
  • Fixed an issue for DateTimePicker when the time is cleared if a date is selected #2837
  • HamburgerMenu changes and improvements
    • New HamburgerMenuIconItem helper class which can be used to put any object icon to the menu item.
    • Fixed tab order and keyboard selection.
    • ItemCommand and OptionsItemCommand
    • Command for HamburgerMenuItem
    • New property PaneForeground for HamburgerMenu and Splitview and new Foreground/Background brushes MahApps.Metro.HamburgerMenu.PaneBackgroundBrush, MahApps.Metro.HamburgerMenu.PaneForegroundBrush
    • Update scroll behavior to match with the UWPCommunityToolkit (see UWP Toolkit Issue #954).
      • Add a new dependency property VerticalScrollBarOnLeftSide to show the vertical scrollbar on the left side
      • Use a disappearing ScrollViewer
    • Add HamburgerVisibility property UWPCommunityToolkit #1020
    • Set Content for HamburgerMenu only if one of the inner ListBox controls has a selected item.
    • New HamburgerMenuHeaderTemplate property to set a header right of the HamburgerMenu button. @SilverDragon135 #2917
    • Implement the interface ICommandSource and handle Command binding change to hook or unhook command executable.
      mahapps_hamburgermenu_commands
    • Add MahApps.Metro.Styles.HamburgerMenu style key to the HamburgerMenu.
  • If ShowInTaskbar = false, when double click on the title bar of a minimized window, the window will be restored instead of maximized. #2854 @hausenism
  • Fix WindowCommands tab stop bug #2858 @neilt6
  • Don’t overwrite cancellation for window close event #2868 @batzen
  • Expose close button margin for MetroTabItem #2803
  • New Badged control. Thx to @ButchersBoy
    image
  • The ControlsHelper.CornerRadius can now used for SplitButton and DropDownButton.
  • New underline types for TabControl and MetroTabControl #2902
    • Adds a new Underlined attached property to TabControlHelper which controls the type of the underline type. The old IsUnderlined property is now obsolete.
        /// <summary>
        /// Specifies the underline position of a TabControl.
        /// </summary>
        public enum UnderlinedType
        {
        None, // nothing
        TabItems, // the old behavior with `IsUnderlined="True"`
        SelectedTabItem, // selected TabItem underlined + underline hover effect for unselected items
        TabPanel // underlined TabPanel and selected/hovered TabItem
        }
      
    • Add also new Brush attached properties to enable easy changing the underline brushes.
        TabControlHelper.UnderlineBrush
        TabControlHelper.UnderlineSelectedBrush
        TabControlHelper.UnderlineMouseOverBrush
        TabControlHelper.UnderlineMouseOverSelectedBrush
      

      mahapps_newunderline4

  • New underline types also for AnimatedTabControl and AnimatedSingleRowTabControl styles and for MetroAnimatedTabControl and MetroAnimatedSingleRowTabControl #2905
  • Fix / improve AnimatedSingleRowTabControl styles
    • Fix template changing (doesn’t works if TabStripPlacement was changed)
    • Disappear arrow repeat buttons
    • Use brush, hover and pressed brush like normal ScrollViewer
  • Fixed ClearTypeHint and wrong Margin for ComboBox and ComboBoxItem #2903
  • Fix ListView style issues
    • Use accent brush for highlighted border
    • Fix SnapsToDevicePixels usage
    • Fix disabled foreground brush
  • Fix SnapsToDevicePixels usage for CheckBox
  • Flyout changes and improvements
    • Fix Flyout modal usage. All title bar commands are now hidden if a Flyout is modal.
    • Fix background and foreground usage of controls in a Flyout if user changes theme on the fly. #2337 The Flyout has a different background, so we should override some background and foreground brushes and colors.
    • Change Flyout from ContentControl to HeaderedContentControl which has the correct properties for headers.
    • Enable Border for Flyout
  • Use GrayBrush7 and WhiteBrush for menu Separator instead fixed colors.
  • Fix BindingExpression at DropDownButton. Don’t set ItemTemplateto ContentTemplate, ItemTemplateSelector to ContentTemplateSelector and ItemStringFormat to ContentStringFormat. This breaks the whole usage of the content stuff and shows a BindingExpression path error. #2883
  • New UsernameCharacterCasing property for LoginDialogSettings #2683
  • Fix SelectionChanged event of SplitButton which fires now only once.
  • Add TransitionCompleted event to MetroContentControl and WindowTransitionCompleted event to MetroWindow which will be fired after the loaded Storyboard is completed.
  • Add new WatermarkAlignment attached property to TextBoxHelper which indicates the horizontal alignment of the watermark (incl. floating watermark).
    mahapps_watermark
  • Add new DataGridHelper with EnableCellEditAssist attached property which enabled direct editing for CheckBox and ComboBox cells. (default to false) Thx to @ButchersBoy (taken from MaterialDesignInXamlToolkit)

Closed Issues

  • #2835 ShowMessageAnsync() causes exception
  • #2848 HamburgerMenu Command MVVM
  • #2866 Validation-Popup won’t be opened after closing by mouse left button down
  • #2870 MahApps Not Thread Safe But Should Be [Test Case]
  • #2877 Can’t bind to ShowTitleBar
  • #2871 SplitButton CornerRadius
  • #2862 Flyout close button icon is incorrect when setting flow direction right to left
  • #1938 Problem with window size
  • #2066 On Windows 8 a window with height 23px resizes to 39px after dragging
  • #2792 Win32Exception on closing window
  • #2886 NumericUpDown: HasDecimals=False & using a bound StringFormat allows to enter a decimal point @davericardo
  • #2885 [Bug] Badged Control Causes Window Loading to Hang
  • #2895 [RFC] [Enhancement] Proposed TabControlHelper.IsUnderlined Change
  • #2903 1 pixel space between ComboBoxItems closes ComboBox
  • #2841 Modal flyout issue
  • #2337 Flyout style from Accent to Light is not working
  • #2883 Can Reproduce BindingExpression path error: … property not found … On DropDownButton
  • #2683 [Question] Force TextBox uppercase in ShowLoginAsync
  • #2857 HamburgerMenuItem Scrolling
  • #1835 Window animation interferes with WindowsFormsHost positioning
  • #2917 Hamburger Header Templating
  • #2332 Calendar ignores IsTodayHighlighted property
  • #2434 DataGridNumericUpDownColumn foreground color
  • #2627 Inconsistent FloatingWatermark Alignment
  • #2865 [Feature request]Enable/Disable of Hamburger Menu Item
  • #2880 RangeSlider: Inadequate snapping to ticks
  • #2812 Font family in Flyout.xaml and MetroNavigationWindow.xaml
  • #2764 Flyout - Border not shown
  • #2515 NumericUpDown Value not displayed
  • #1929 MetroDataGridCheckBox style prevents the CellEditEnding

Version 1.4.3

Changes / Fixes

  • Fix Flyout AutoClose sample
  • Try to handle call fail of GetPhysicalCursorPos. #2830

Closed Issues

  • #2832 Wrong window maximize on two monitor systems.
  • #2830 GetPhysicalCursorPos

Version 1.4.2

Changes / Fixes

  • #2814 Correct display of media buttons in HotKeyBox (thx @thoemmi)
  • 7fcc6b7 Fix breaking changes for obsolete properties ButtonHelper.PreserveTextCase, ButtonHelper.CornerRadius and ControlsHelper.ButtonWidth
  • a1d199d Fix binding to Content of HamburgerMenu
  • #2799 DateTimePicker SelectedDate issue (thx @xxMUROxx)
    • Fix issue where SelectedDate is set to the DisplayDate if the SelectedDate is DateTime.MinValue. This issue appears when binding to a property of DateTime and the date is DateTime.MinValue.
  • Z-Order was wrong if MetroWindow is ignoring the Taskbar and maximized. This fix and the main Taskbar z-Order issue only happens with Windows 10 anniversary update 1607. Hopefully fixed in the future. #2780
  • Use internal GetPhysicalCursorPos instead GetCursorPos (tested with remote desktop and different DPI) #2748

Closed Issues

  • #2585 HotKeyBox gives wrong names to multimedia buttons
  • #2817 TransitioningContentControl’s TransitionCompleted event fires twice
  • #2804 TransitionsEnabled=false NullpointerException
  • #2823 Issue with ClearTextButton on TextBox
  • #2815 Layout issue with TabControl, TabStripPlacement Left, TabControlHelper.IsUnderlined=”True”
  • #2770 Increase Win10 ToggleSwitch Default Margins
  • #2780 External Dialogs not visible with MainWindow set to IgnoreTaskbarOnMaximize
  • #2748 Access Denied
  • #2591 Weird MetroProgressBar animation with IsIndeterminate=true

Version 1.4.1

Changes / Fixes

  • #2793 StringToVisibilityConverter should handle null like an empty string
  • #2796 HamburgerMenu SelectedIndex Fix
  • #2797 Fix NumericUpDown using UseFloatingWatermark
  • #2789 Prevent the MetroDataGridCheckBox from being toggled by a TAB + SPACE when the cell is supposed to be read only.

Closed Issues

  • #2795 NumericUpDown Watermark is shown twice when using floatingwatermark for textboxes
  • #2788 MetroDataGridCheckBox cell can be changed when IsReadOnly via keyboard + space
  • #2785 Vailidation tooltips does not show.
  • #2780 External Dialogs not visible with MainWindow set to IgnoreTaskbarOnMaximize

Version 1.4.0

Features / Changes / Fixes

  • Don’t focus flyout on close #2671 (@ButchersBoy) This hack was introduced with #1805 which was noticed by manual testing.
  • Don’t focus the FlyoutsControl
  • Fix another TopMost issue: If the window is top most and you switch to another window the top most will be gone.
  • Change icon for TimePicker #2700 (@p76984275)
  • Icon scaling #2667 (@thoemmi)
    • New property IconScalingMode to MetroWindow. It’s forwarded to MultiFrameImage.MultiFrameImageMode to set the icon scaling.
      • MultiFrameImageMode.ScaleDownLargerFrame
        It takes the smallest frame which from the icon which has equal or larger size as the window’s icon template. The frame is scaled down it’s larger.
        image
      • MultiFrameImageMode.NoScaleSmallerFrame
        It takes the largest frame from the window which has equal or smaller size than the window’s icon template. The frame is rendered centered if it’s smaller.
        image
  • Changes for DateTimePicker and TimePicker #2710
    • Change DateTimePicker.SelectedDate to BindsTwoWayByDefault. The reason is that we do not have to use Mode=TwoWay explicit, and DatePicker.SelectedDate has BindsTwoWayByDefault too.
    • [Fix] Issue where Binding issues on DateTimePicker/TimePicker are shown on the output window
    • [Fix] Issue where Hour 0 is not shown when using 24h clock
    • Fix issue where clearing text does not immediately set value to null but 00:00:00 and 0001.01.01 00.00.00 respectively
    • Change icon for TimePicker #2700 (@p76984275)
    • Hide DateTimePicker and TimePicker on lost focus. Fix also Shift+Tab focus moving.
  • New SplitView and HamburgerMenu control #2704
  • New dependency properties for MetroWindow to set the brush and opacity for the overlay if a dialog is shown.
    • OverlayBrush sets the brush used for the dialog overlay.
    • OverlayOpacity sets the opacity used for the dialog overlay (0 = disabled, 1 = full overlay).
  • The TextBox’s with the styles MetroButtonTextBox and SearchMetroTextBox can now use the button also if IsReadOnly="True" (only if the button command is set)
  • New AutoWatermark attached property at TextBoxHelper #2722 (@xxMUROxx) which is able to get the DisplayAttribute from the bound property in following cases:
    • Binding that is supported
      • "{Binding Path=Property}"
      • "{Binding Path=Property.SubProperty}"
      • "{Binding Path=CollectionProperty}"
      • "{Binding Path=CollectionProperty[0].SubProperty}"
    • Binding that is not supported
      • "{Binding Path=CollectionProperty[0]}"
    • This property is available for TextBox, ComboBox, NumericUpDown, DatePicker, TimePicker and DateTimePicker
  • Flyout changes for better Margin usage
    • This changes affects only users who used the sample from the source which shows how to use the FlyoutsControl actual width and a Margin for the Flyout
    • It’s now possible to work without the actual width and use only the Margin or HorizontalContentAlignemnt for Left/Right and VerticalContentAnlignment for Top/Bottom Flyout.
      • Margin="200 30 0 0" and Position="Right" Flyout with left an top Margin
      • HorizontalContentAlignment="Stretch" and Position="Right" Flyout which covers the whole window
  • Changed style names (and changes, see #2767) for
    • Default Button (ButtonBase) -> MahApps.Metro.Styles.MetroButton
    • Default ToggleButton -> MahApps.Metro.Styles.MetroToggleButton
  • Fixed Expander closing animation and make it possible to change both animations (expand and collapse). #2769 (@ Alkalinee)
  • Updated TabControl and TabItem style for VS #2768
    • Handle TabStripPlacement
    • Default close button action (no closing event yet)
  • TextBox ContextMenu changes #2772, #2758 by @Deadpikle
    • If you want to use the default context menu items cut, copy and paste you must do nothing
    • If you want to use your own context menu items without the default items you must do this ```xaml
      + If you want to use your own context menu items with the spell checker items then you must do this
      ```xaml
      <TextBox Margin="{StaticResource ControlMargin}"
              Controls:TextBoxHelper.IsSpellCheckContextMenuEnabled="True"
              Text="Enabled">
          <TextBox.ContextMenu>
              <ContextMenu>
                  <MenuItem Header="This is only a Test-Item" />
              </ContextMenu>
          </TextBox.ContextMenu>
      </TextBox>
    
    • If you want to use your own context menu items with the deafult items then you must do this ```xaml

    ```

  • CustomDialog improvements #2775
    • New overloaded generic method ShowMetroDialogAsync to create and show custom dialogs (self created dialogs which are inherited from CustomDialog) ```csharp // create and show a new custom dialog of the given type with the default dialog settings var customBaseMetroDialog = await this.ShowMetroDialogAsync();

    // create and show a new custom dialog of the given type with own settings var customBaseMetroDialog = await this.ShowMetroDialogAsync(this.metroDialogSettings);

      + Better handling for dialogs settings also with the already available `ShowMetroDialogAsync` method
      ```csharp
      // create and show custom dialog with default settings
      await this.ShowMetroDialogAsync(new CustomBaseMetroDialog());
    
      // create and show custom dialog with own settings
      await this.ShowMetroDialogAsync(new CustomBaseMetroDialog(this.metroDialogSettings));
      // or
      await this.ShowMetroDialogAsync(new CustomBaseMetroDialog(this, this.metroDialogSettings));
    
    • It’s now also possible to configure the dialog settings at the custom dialogs class itself.
        protected override MetroDialogSettings ConfigureSettings(MetroDialogSettings settings)
        {
        return new MyCustomDialogSettings();
        }
      
    • Here is the source for the given samples ```xaml
    
      ```csharp
      namespace ShowMetroDialogAsyncIssue
      {
          using System.Windows;
          using MahApps.Metro.Controls;
          using MahApps.Metro.Controls.Dialogs;
    
          public partial class CustomBaseMetroDialog : CustomDialog
          {
              public CustomBaseMetroDialog()
              {
                  InitializeComponent();
              }
    
              public CustomBaseMetroDialog(MetroDialogSettings settings) : base(settings)
              {
                  InitializeComponent();
              }
    
              public CustomBaseMetroDialog(MetroWindow parentWindow, MetroDialogSettings settings) : base(parentWindow, settings)
              {
                  InitializeComponent();
              }
    
              private void Close_OnClick(object sender, RoutedEventArgs e)
              {
                  (this.OwningWindow ?? (MetroWindow)Application.Current.MainWindow).HideMetroDialogAsync(this);
              }
          }
      }
    

Closed Issues / Pull Requests

  • #2674, #2671 Null Reference Exception in BorderlessWindowBehavior.TopMostChangeNotifierOnValueChanged (@mikeasage)
  • #2671 Proposal - Dont focus flyout on close
  • #2699 [Suggestion] TimePicker & DateTimePicker Icon
  • #2480 Windows 10 SplitView
  • #2715 Center mouse click crashes applications on some PCs with an Arithmetic Overflow Exception
  • #1709 Disable transparency or hide controls in background
  • #2497 Custom dialog background and foreground
  • #2720 DateTimePicker does not hides for Date Change
  • #2713 Weird animation on combobox with only one item
  • #2746 WindowCommands - Toggle Button And Button Access Key Not Underlined When Pressing Alt
  • #2744 Flyout IsPinned = False/True
  • #2737 Design for textbox
  • #2678 SearchMetroTextBox style, IsReadOnly
  • #2435 BackgroundToForegroundConverter returning color may be changed in some accents?
  • #2712 TextBox “Auto” Watermark-text
  • #2694 Maximized Window is “Always on Top” when IgnoreTaskbarOnMaximize=True. Window remains “Always on Top” on Restore
  • #2734 Mahapps UI is locked in Dialog Window after re-login
  • #2338 Impossible to toggle the visibility of TitleBar with UseNoneWindowStyle!
  • #2750 Fix for FlipView : Navigation’s button visibility and Transition update
  • #2216 Flyout with a margin does not slide out properly
  • #2752 Unable to change the MessageDialog highlighted button
  • #2687 Implement SecureStrng into LoginDialogData and ShowLoginDialog
  • #2756 Flyout Position top element focus inhibited by title bar
  • #2755 MetroAnimatedTabControl first tab font not changing
  • #2760 DatePicker SelectionBackground doesn’t match accent color
  • #2766 Flyout - Strange issue with a listview
  • #2767 Button Border not Transparent when Focused.
  • #2346 TabControl with VS style
  • #2090 VS TabItem
  • #1890 How do i use the CloseCommand in StandardTabControl with VS Style
  • #2261 ComboBox context menu.
  • #2774 Fix DataGridRowHeader HorizontalAlignment
  • #2735 MetroWindow.ShowMetroDialogAsync odd behaviour with provided DialogSettings

Version 1.3.0 released

Features / Changes (and Fixes)

  • Switched from Ms-PL to MIT license #2646
  • New DateTimePicker and TimePicker controls #2299 #2510 (@xxMUROxx)
  • New Hotkey control HotKeyBox #2322 (@thoemmi)
  • New ‘Remember’ CheckBox in LoginDialog #2308 #2305 (@manekovskiy)
  • New IconPacks for MahApps: PackIconMaterial, PackIconModern, PackIconFontAwesome and PackIconEntypo #2328 availabe at MahApps.Metro.IconPacks
    <iconPacks:PackIconMaterial Kind="EmoticonCool" Height="32" Width="32" />
    <iconPacks:PackIconModern Kind="Cupcake" Height="24" Width="24" />
    <iconPacks:PackIconFontAwesome Kind="FontAwesome" Height="16" Width="16" />
    <iconPacks:PackIconEntypo Kind="ThumbsUp" />
  • New Auto Close feature for Flyout #2228 #1710 (@Sikta)
    • Enable this by set IsAutoCloseEnabled to true
    • Time changable by AutoCloseInterval (default 5000 ms)
  • Fix PasswordBoxBindingBehavior and IsWaitingForData #2355
    • Fixed: Behaviors in StylizedBehaviors should be detached on unload
    • Fixed: PasswordBoxBindingBehavior, it doesn’t work e.g. in TabControl TabItems
    • IsWaitingForData for MetroButtonTextBox, MetroPasswordBox, MetroButtonPasswordBox, MetroButtonRevealedPasswordBox
    • PackIconMaterial Eye and ClearTextButton feature for MetroButtonRevealedPasswordBox
  • Added ContentStringFormat TemplateBinding to ToolTip #2359 (@nrpog) #2363
  • ControlsHelper.ButtonWidth for ComboBox and other stuff #2365
    • set ChromelessButtonStyle Padding to 0
    • new dependency property ButtonContentTemplate in TextBoxHelper
    • fix width of ClearText button if height change, e.g. for floating watermark
    • fix background state colors (IsPressed, IsMouseOver)
    • new own sytle MetroComboBoxDropDownToggleButtonStyle for ComboBox toggle button
  • Added EllipseDiameterScale to ProgressRing #2204 #2382 (@petvetbr)
  • WindowButtonCommands enhancements #2378
    • use ContentPresenter to show the WindowButtonCommands, so it’s now possible easier to change the min/max/close button styles
    • enable changing min/max/restore/close button tooltip
    • new Win10 style/template: MahApps.Metro.Styles.WindowButtonCommands.Win10 and MahApps.Metro.Templates.WindowButtonCommands.Win10
      2016-05-17_15h27_28
      2016-05-17_15h27_40
  • Minor Automation API support for Flyouts and NumericUpDown #2381 #2166 (@petvetbr)
  • Dialog font sizes setting implementation #2380 #2383 (@petvetbr, @punker76)
    • changable via DialogTitleFontSize and DialogMessageFontSize
  • New attached dependency property TextButton in TextBoxHelper which handles the visibility of the button in MetroButtonPasswordBox and MetroButtonTextBoxstyles #2387
  • Win10 ToggleSwitch and ToggleSwitchButton #2410
    • ToggleSwitch is now inherited from HeaderedContentControl
    • new dependency property HeaderFontFamily for ToggleSwitch
    • new Win10 and Metro styles
      • MahApps.Metro.Styles.ToggleSwitchButton.Win10, MahApps.Metro.Styles.ToggleSwitch.Win10
      • MahApps.Metro.Styles.ToggleSwitchButton, MahApps.Metro.Styles.ToggleSwitch
    • new Win10 font family and size keys
      • ToggleSwitchFontFamily.Win10, ToggleSwitchHeaderFontFamily.Win10
      • ToggleSwitchFontSize.Win10, ToggleSwitchHeaderFontSize.Win10
    • fixed broken IsPressed state
    • new brushes for the Win10 styles
      MahApps.Metro.Brushes.ToggleSwitchButton.PressedBrush.Win10
      MahApps.Metro.Brushes.ToggleSwitchButton.OffBorderBrush.Win10
      MahApps.Metro.Brushes.ToggleSwitchButton.OffMouseOverBorderBrush.Win10
      MahApps.Metro.Brushes.ToggleSwitchButton.OffDisabledBorderBrush.Win10
      MahApps.Metro.Brushes.ToggleSwitchButton.OffSwitchBrush.Win10
      MahApps.Metro.Brushes.ToggleSwitchButton.OnSwitchBrush.Win10
      MahApps.Metro.Brushes.ToggleSwitchButton.OnSwitchDisabledBrush.Win10
      MahApps.Metro.Brushes.ToggleSwitchButton.OnSwitchMouseOverBrush.Win10
      MahApps.Metro.Brushes.ToggleSwitchButton.ThumbIndicatorBrush.Win10
      MahApps.Metro.Brushes.ToggleSwitchButton.ThumbIndicatorMouseOverBrush.Win10
      MahApps.Metro.Brushes.ToggleSwitchButton.ThumbIndicatorCheckedBrush.Win10
      MahApps.Metro.Brushes.ToggleSwitchButton.ThumbIndicatorPressedBrush.Win10
      MahApps.Metro.Brushes.ToggleSwitchButton.ThumbIndicatorDisabledBrush.Win10
    • new brush and color keys for all accent colors: AccentBaseColor and AccentBaseColorBrush (full color)
  • Flyout changes
    • SetFlyoutOpenAction is now obsolete
    • new/update template names BackButton, BackHeaderText
    • new CloseCommandParameter dependency property
  • FlipView changes
    • MouseOverGlowEnabled is now obsolete, use MouseHoverBorderEnabled instead
    • new MouseHoverBorderBrush and MouseHoverBorderThickness dependency property
  • New dependency property CircularNavigation for the FlipView #2389
  • BindsTwoWayByDefault removed from IsActiveProperty of ProgressRing #2438 (@xxMUROxx)
  • Fix Flyout theme usage in Caliburn.Micro sample
  • New dependency properties for Tile control: HorizontalTitleAlignment and VerticalTitleAlignment #2293
  • New attached dependency properties TextBoxHelper.ButtonFontSize #2345 Also add a new font size ClearTextButtonFontSize (default to 16) for all ‘ClearText’ buttons
  • Added a MetroFlatToggleButton style like MetroFlatButton #2481 (@Koopakiller)
  • New MetroThumbContentControl for MetroWindow title #2487
    • It’s now possible again to have title templates with clickable controls
    • Replaced TitleCaps with TitleCharacterCasing (marked as obsolete). Now title can be Upper, Lower or Normal
    • Add new styles MahApps.Metro.Styles.ContentControlEx and MahApps.Metro.Styles.MetroThumbContentControl
  • Flyout improvement caused by #2485 #2523
    • use ContentControlEx for header, so it’s now possible to use ControlsHelper attached properties ContentCharacterCasing, HeaderFontSize, HeaderFontWeight and HeaderFontStretch
    • new attached property ControlsHelper.HeaderMargin to handle the Margin from Flyout side
  • New dependency property ShowDialogsOverTitleBar for `MetroWindow? which allows showing title bar while showing dialogs (fixes #2109) #2534 (@Deadpikle)
  • Store/Restore focused element methods which will be used automatically with dialogs (but can be also used explicit) #2532
  • Added new methods ShowModalInputExternal, ShowModalLoginExternal and ShowModalMessageExternal. #2518 (@adeniltonbs)
  • New brush keys NonActiveWindowTitleColorBrush and NonActiveBorderColorBrush
  • Add IsNavigationEnabled Property in FlipView #2563 (@yoker)
  • Another SplitButton and DropDownButton fixes #2572
    • change SplitButton to Selector to get access to SelectedValuePath and SelectedValue
    • fixed Popup alignmentand close Popup on button click
    • add ItemsPanel template binding
    • add 2 new dependency properties ArrowMouseOverBrush, ArrowPressedBrush
    • enable Items usage (for SplitButton and DropDownButton)
    • add new dependency properties ContentTemplate, ContentTemplateSelector and ContentStringFormat for DropDownButton, if this proeprties are empty DropDownButton will be use the ItemXYZ properties
    • add protected virtual void SetContextMenuPlacementTarget(ContextMenu contextMenu) to DropDownButton
  • Glow activation/resizing/dpi fixes #2581
    • mouse activation bug if the MetroWindow uses a Glow
    • resizing/cursor bug on higher DPI
    • the glow can come on top if the main app has a second window and the user minimize and restore the main app again
    • the window doesn’t zoom in vertical height if the user double clicks on the top Glow
  • Introduce new styles for circle button and circle toggle button which removes the non removable inner margin.
    • MahApps.Metro.Styles.MetroCircleButtonStyle
    • MahApps.Metro.Styles.MetroCircleToggleButtonStyle
    • MahApps.Metro.Styles.MetroCircleFocusVisual

Closed Issues

  • #2003 “VisualButton” That makes working with the XAML icons easier
  • #2114 Icon color not changing on theme change (as #1029)
  • #2275 Embed Material Design Icons (in addition to Modern UI Icons)?
  • #1710 New “Auto Close” feature for Flyouts
  • #2354 TextBoxHelper.ButtonClicked should pass ButtonCommandParameter to ButtonCommand.CanExecute
  • #2343 Win8MetroPasswordBox Preview does not work with Tabcontrol (item > 1)
  • #2352 Can’t set ComboBox buttons width with ControlsHelper.ButtonWidth
  • #2370 Pasting over selection in NumericUpDown doesn’t work #2371 (@michaelprewecki)
  • #1901 ThemeChanging causing app crash
  • #1439 ComboBox in Toolbar closes if Scrollbar track/button is clicked
  • #1972 Changing Close button icon
  • #2166 Controls Do not get distinct automation ID’s
  • #2204 Progress ring dot scaling seems to be wrong (1.1.2)?
  • #2380 Missing FontSize Property for ProgressDialog/ShowProgressAsync
  • #2385 ButtonCommandMetroTextBox text displaid over icon.
  • #2220 Why in the MetroButtonTextBox the visibility of PART_ClearText is not managed as the MetroTextBox?
  • #2311 ComboBox won’t toggle closed in ribbon
  • #2396 ShowMetroDialogAsync does not raise DialogManager.DialogOpened event.
  • #2402 Window Command ItemSource Binding
  • #2403 NumericUpDown HasDecimals Is Broken. #2404 (@feinstein)
  • #2415 ToggleSwitch “Click” event not triggered #2421
  • #2413 Focusable (Selectable) Text in MessageDialog
  • #2409 MetroWindow can be closed while a modal dialog is shown
  • #2348 Thumb height of slider control
  • #2340 How to change Datagrid Header Background using our custom style and based on MetroColumnHeader?
  • #2390 PasswordBox CapsLockIndicator is not refreshed when host window is inactive
  • #2416 WPF inside WF, Cannot close Flyouts and FlyView doesn’t select
  • #2432 Modal Flyouts Window Not Dragable
  • #2333 FlipView SelectedIndex resetting bug
  • #2214 Is there a way to control the “PART_GlowBorder” thickness in FlipView?
  • #2126 FlipView.HideControlButtons() does not disable arrow keys.
  • #2395 MahApps.Metro resource icons cannot be used repeatedly
  • #2389 Circular FlipView
  • #2056 ToggleButton foreground color when selected
  • #1823 Cannot fully programatically maximize window.
  • #2414 Focus is lost after a dialog is closed
  • #2332 Calendar ignores IsTodayHighlighted property
  • #2420 ShowmessageAsync Cancellation Exception #2454 (@MatthewKinsman)
  • #2293 Align Tile Title
  • #2459 MetroDialogSettings not being propagated to ProgressDialog by DialogManager
  • #2462 Should a click on a MetroTabItems close button really clear the buttons Command and CommandParameter properties?
  • #2345 Can’t edit TextBoxHelper.ClearTextButton properties
  • #2474 right to left DatePicker
  • #2476 MetroWindow OnClosing exception (.Net 4.0)
  • #2339 The Glow border does not follow the window is is used the UseNoneWindowStyle property!
  • #2477 Create a custom Thumb for the title DragMove
  • #2449 Visual bug while using RightWindowCommands
  • #2495 Default for ControlsHelper.HeaderFontSizeProperty should be SystemFonts.MessageFontSize
  • #2479 DefaultButtonFocus Not Working As Expected PR #2505
  • #2514 NumericUpDown UseFloatingWatermark Issue
  • #2485 Hiding close button and title leaves blank space in top-positioned flyouts #2485
  • #2531 Setting TitleFontSize & CountFontSize in Tile is no longer working
  • #2109 Size of MahApps Dialog background..
  • #2538 Focus Message Dialog from flyout
  • #2537 Bad contrast in ProgressDialog’s progress bar
  • #2532 ProgressDialog close causes loss of focus on child control
  • #2486 DateTimePicker right click menu appearance
  • #2524 DatePicker and DateTimePicker UseFloatingWatermark don’t work
  • #2269 Make Controls:TextBoxHelper.UseFloatingWatermark=”True” work for DatePicker
  • #2525 System.Windows.Media.Animation.DoubleAnimation’ cannot use default origin value of ‘Infinity
  • #2552 How to hide flyout title
  • #2556 Interact with DialogController from Background Thread (@xxMUROxx)
  • #2473 Cannot use DialogCoordinator from background threads.
  • #2551 Feature Request: NonActiveWindowTitleColorBrush
  • #2542 NumericUpDown SelectAllOnFocus doesn’t work
  • #2148 MetroProgressBar orientation does not work (@petvetbr) #2379
  • #2492 MetroProgressBar / IsIndeterminate / Animation Warning 6
  • #2504 DataGrid causes lag when switching content PR #2570
  • #2374 SplitButton: Add SelectedValuePath and SelectedValue property
  • #2540 Popup in SplitButton is aligned wrong
  • #2457 Splitbutton Popup doesn’t close
  • #2215 SplitButton does not respect GroupStyle
  • #2185 SplitButton IsPressed trigger won’t change Foreground
  • #2360 SplitButton Items
  • #2078 Fill DropDownButton items without Binding
  • #2051 DropDownButton and SplitButton doesn’t works
  • #2224 DropDownButton uses ItemTemplate template binding twice
  • #2569 DropDownButton popup placement
  • #2574 SplitButton Popup Doesn’t Close After Alt+Tab (@Deadpikle) #2621
  • #2498 Vertical space for Title still being taken up even though Title is blank
  • #2577 Window Resizing Erroneously Acts Deferred
  • #2279 Corner resize issues with GlowBrush enabled
  • #2591 Weird MetroProgressBar animation with IsIndeterminate=true
  • #1191 Missing style for RepeatButton
  • #2584 ComboBox UseFloatingWatermark Issue
  • #2598 DatePickerTextBoxBehavior NullReferenceException
  • #2611 SliderHelper.EnableMouseWheel is working only once when using TabControl
  • #2618 IgnoreTaskbarOnMaximize stopped working after windows 10 anniversary update. (@igorushi, @punker76)
  • #2635 Showing any Window before Main Window causes Left and Right window commands not work properly.
  • #2656 Flyout problem with ActualWidth

Version 1.2.4 released

Bugfixes

  • #2288 First 30 units of flyout aren’t clickable
  • #2324 DataGrid activated by Titlebar (rows are hovered while dragging a window over a DataGrid)
  • #2287 IsWindowDraggable broke starting in 1.2

Version 1.2.3 released

Bugfixes

  • #2320 Fixed window can’t be moved around using a touch screen

Version 1.2.2 released

Bugfixes

  • Fixed strong sign assembly stuff

Version 1.2.1 released

Bugfixes

  • Fixed hidden focus for TextBox control (and other input controls) #2296 #2304
  • Fixed not working TextBoxHelper.SelectAllOnFocus="True" #2307 (@sachokFoX)

Version 1.2.0 released

Features / Changes

  • The Glow (window) should not be clickable #1829
  • Add a tooltip text converter to RangeSlider for lower and upper value tooltip #1833 (@Alkalinee)
  • Changable Margin of ContentPresenter in MetroListBoxItem #1892 (@ye4241)
  • LoginDialog Password preview feature #1873 #1546 (@bitbeans, @djengineerllc)
  • WaitUntilUnloadedAsync for custom dialogs #1910 #1910 (@IsNull)
  • New Culture dependency property for NumericUpDown #1874 (@panastas91)
  • WindowCommands height span now the entire height of the title bar #1902 (@Dotnetifier)
  • Add support for initial password in login dialog #1915 (@Stoom)
  • The FontSize in Dialogs is now changeable #1941
  • Add mechanism for easy access of a dialog from a view model #1943 (@ButchersBoy)
    • Use attached property in Window XAML: Dialog:DialogParticipation.Register="{Binding}"
    • And then IDialogCoordinator / DialogCoordinator.Instance to launch dialogs from inside a VM
    • See: https://dragablz.net/2015/05/29/using-mahapps-dialog-boxes-in-a-mvvm-setup/
  • ToggleSwitch improvements and fixes #1945
    • new dependency property ToggleSwitchButtonStyle and style key MetroToggleSwitchButton
    • BorderThickness and BorderBrush for toggle button style now customizable
    • new font keys
      • ToggleSwitchFontFamily and ToggleSwitchHeaderFontFamily
      • ToggleSwitchFontSizeand ToggleSwitchHeaderFontSize
    • new dependency properties to change brushes
      • OnSwitchBrush and OffSwitchBrush
      • ThumbIndicatorBrush and ThumbIndicatorDisabledBrush
    • new dependency property ThumbIndicatorWidth
    • Validation.ErrorTemplate support #1917
    • Keyboard focus if the ToggleSwitch itself or the toggle button was clicked
    • Fixed on/off label binding issue #1867
    • introduce commands for mvvm usage #1464
      • CheckChangedCommand, CheckedCommand and UnCheckedCommand
      • CheckChangedCommandParameter, CheckedCommandParameter and UnCheckedCommandParameter
  • New ComboBoxHelper attached properties MaxLength and CharacterCasing #1949 #1948
  • DropDownButton improvements #1952 #1574
    • new ButtonStyle dependency property and new style key ButtonDropDownStyle for the default
    • new ArrowBrush and ArrowVisibility dependency properties
    • fix alignement and margins, better focus handling
    • new MenuStyle dependency property
    • new IconTemplate dependency property
  • Watermark on ComboBox where IsEditable="False" #1958 #1953
  • New SelectAllOnFocus dependency property for NumericUpDown (with default to true like ComboBox does)
  • Possiblity to define the width of the NumericUpDown up and down buttons #1962 (@Prophetebe)
  • SplitButton improvements #1977
    • new ButtonStyle, ButtonArrowStyle dependency properties and new style keys ButtonSplitStyle, ButtonSplitArrowStyle
    • new ArrowBrush and ArrowVisibility dependency properties
    • fix alignement and margins, better focus handling
    • new ListBoxStyle dependency property
    • new IconTemplate dependency property
  • Set AssemblyCompany to MahApps #1985 (@DaCheeseMan)
  • Expander improvements #1988
    • Styling fixes (margin, padding, border thickness)
    • new ExpanderHelper with
      • 4 new attached dependency properties HeaderUpStyle, HeaderDownStyle and HeaderLeftStyle, HeaderRightStyle. So it’s now possible to create your own header toggle styles without rewriting the Expander style.
    • Better handling with BorderThickness property, the Expander uses now the new value converter ThicknessBindingConverter, so setting the BorderThickness is much better than before.
    • Click on Expander header support #1291 (just do the default expander behavior)
    • For GroupBox
      • Styling fixes (margin, padding, border thickness)
      • Better handling with BorderThickness property.
  • Support for multiple dialogs #1974
  • Improved DataGrid row and cell color styling #2004
  • New attached dependency property DisabledVisualElementVisibility for TextBox, PasswordBox, RichTextBox and NumericUpDown, this makes it easier to hide this element if we don’t want/need it in special cases (inside other controls or using in a DataGrid).
  • Add Minimum, Maximum properties to ProgressDialogController #2013 #1702
  • New ButtonsAlignment (attached) property to have possibility to set NumericUpDown (TextBox) buttons on the left side #2024 (@QuantumDeveloper)
  • Support for CancellationToken to cancel dialogs #2022 #2018 (@thoemmi)
  • Changed default value of ProgressRing.IsActive to true #2029
  • MetroDialogs fixes and changes #2032 #1149
    • DialogSettings property is now public
    • New property CustomResourceDictionary for DialogSettings
    • New virtual method OnLoaded
  • TreeView style enhancements #2041
    • fix some styling issues and enable virtualization
    • introduce VirtualisedMetroTreeView
  • SelectAllOnFocus for input and login dialogs #1750
  • New MetroValidationPopup style and new CloseOnMouseLeftButtonDown dependency property #2058 #1469
  • Progress bar in ProgressDialog is not set to Indetermined by default anymore, must be set explicitly by calling ProgressDialogController.SetIndeterminate() #2097
  • Added Closed event to ProgressDialogController #2097
  • Catch ConfigurationErrorsException if the user.config file is corrupt #2112 (@Remolutionary)
  • Only apply SizeToContent workaround when necessary #2116 (@tgjones)
  • Canceled event (and IsCanceled property) for ProgressDialogController #2150 (@bigworld12)
  • New attached property Controls:ControlsHelper.ContentCharacterCasing for ContentControl, DropDownButton and in the future for WindowCommands
    • Fixes #1701: DropdownButton with all UpperCase label
    • Remove PreserveTextCase attached property from ControlsHelper (it was introduced in alpha version)
    • Mark ButtonHelper PreserveTextCase attached property as obsolete
    • Use ContentCharacterCasing for MetroDataGridColumnHeader and MetroGridViewColumnHeader too
  • Dynamic theme for window commands #2152 (@crumbl3d)
    • Fixed WindowCommandsItem visibility #2175
  • StatusBar’s background color now matches the title bar #2173 #2174 (@thoemmi)
  • Change Slidervalue on MouseWheel event. #2171 (@xxMUROxx)
  • New MetroThumb in order to be better in Touch environment #1853 (@ycaoyang)
  • NumericUpDown with Integer only option #2065 (@feinstein)
  • CornerRadius for ComboBox #2207
  • Font related dependency properties for DataGridNumericUpDownColumn #2205
    • FontFamily, FontSize, FontStyle, FontWeight
    • Foreground, which will override the DataCell foreground inheritence
  • New ContentControlEx to reduce some boilerplate XAML code
    • Used for all possible ContentCharacterCasing usage (Button, GroupBox, Expander, ListView columns, DataGrid columns, DropDownButton, SplitButton, WindowCommands, TabItem)
  • Copy command for the message text in MessageDialog #2223 (@akinyooa)
  • New option to hide username on LoginDialog #2230 (@mgnslndh)
  • Use a Thumb for Window DragMove #2226
  • ComboBox style respects textbox helper button content property #2264 (@ButchersBoy)
  • Show Tile as disabled #2263 #2262 (@xxMUROxx)
  • New dependency property CloseButtonIsCancel for Flyout close button #2256 (@BlythMeister)
  • New property DefaultButtonFocus for default focused button in MessageDialog #2265 (@BlythMeister)
  • UseFloatingWatermark for NumericUpDown #2202 #2245 (@xxMUROxx)
  • Set Opacity to .55 if SplitButton /DropDownButton is disabled #2272 (@p76984275)

Bugfixes

  • Fixed resizing cursors #1830
  • Fixed external dialog flickering #1845 #1859
  • Fixed a MetroProgressBar performance issue #1855 #1860 (@zandrei007)
  • Fixed Win32Exception Invalid window handle thrown when IgnoreTaskbarOnMaximize bound to a true value #1880 #1883
  • Fixed flickering glow window borders (on resizing) #1864
  • Fixed exception in Visual Studio Designer with CustomDialog #1850 (@marcpiechura)
  • Fixed NumericUpDown IsReadonly issue #1840 (@xxMUROxx)
  • Fixed ThemeManager issue if resource source case in App.xaml does not match #1759 (@sickboy)
  • Fixed validation popup location flicker #1925 #1922
  • Fixed fullscreen using window FlowDirection="RightToLeft" #1927 #1924
  • Fixed possible System.NullReferenceException for HandleTheme in BaseMetroDialog #1933 #1931
  • Fixed blurred arrows in TreeView #1934 #1907
  • Fixed ResizeGrip usage by setting the WindowChrome ResizeGripDirection #1937 #1832
  • Fixed wrong overlapping window button commands with ShowInTaskbar=False #1940 #1912
  • Fixed IsReadOnly usage/binding for NumericUpDown (and TextBox…) #1942 #1914
  • Fixed ToggleSwitch validation shows red border but doesn’t show error text #1917 #1945
  • Fixed MVVM Binding for OnLabel/OffLabel at ToggleSwitch #1867 #1945
  • Fixed focus problem with NumericUpDown #1903 #1959
  • Fixed JIT Compiler encountered an internal limitation #1919 #1971
  • Fixed access keys in CheckBox, RadioButton, and GroupBox #1979
  • Fixed close Message dialog when pressing Enter or Esc #1976 #1980
  • Fixed creating a Task instance doesn’t execute it #1997 (@thoemmi)
  • Fixed possible System.OverflowException with IntPtr.ToInt32() on Win 8 or Win Server 2012 #1993 #1996
  • Fixed show/hide overlay only when first dialog is shown or last dialog was closed #1998
  • Fixed NumericUpDown for runtime changes to StringFormat and Culture properties #2001
  • Fixed DataGrid row conditional foreground #1939 (@spaccabit)
  • Fixed overriding DataGridRow style (e.g. row selection) #1876, #1492, #1243, #809
  • Fixed DataGridNumericUpDownColumn styling #1878
  • Fixed missing DataGridRow validation #1930
  • Fixed System.Windows.Media.Animation warnings with MetroProgressBar #2012
  • Fixed an issue with RangeSlider with binding and values between ticks #2006 (@drayde)
  • Fixed ScrollBarHelper.VerticalScrollBarOnLeftSide usage #2025
  • Fixed not updating Pivot’s header selected item when modify the Selected-Pivot-Item by code #2010 (@ycaoyang)
  • Fixed ProgressDialog cannot find the AccentColorBrush resources #1149
  • Fixed using TextBoxHelper.ClearTextButton on a NumericUpDown won’t rise its value changed event #2031
  • Fixed MetroCircleToggleButtonStyle BorderBrush not using TemplateBinding #1573
  • Fixed databound TreeViewItem does not respond to changes when inside MahApps window. #2038
  • Fixed TreeView usage with large data #1896 #2041
  • Fixed ValidationError popup shows only first char of the error string #1926
  • Fixed usage of TextmarkHelper.Watermark with Caliburn.Micro #1059
  • Fixed not changable background color of a checkbox or radio button #1906
  • Fixed Padding usage for MetroTabItem: How to increase the spacing between Tab Items? #2074
  • Fixed obj ref null exception if there is no Window Theme at runtime. #2087 (@ButchersBoy)
  • Fixed border for tiles #2063 (@bigworld12)
  • Fixed ReadOnly, TabIndex, TabStop and manually input stuff for NumericUpDown #1818
  • Fixed Watermark/Text Alignment of DatePicker and NumericUpDown controls #1683
  • Fixed missing Glow border corners #2143 #2118
  • Fixed incorrect restore location after Aero Snap #2144 (@tgjones)
  • Removed unneeded MessageDialogStyle param from IDialogCoordinator.ShowLoginAsync method #2146 (@acejordin)
  • Fixed RangeSlider memory leak #2064
  • Fixed closing a MetroTabItem added from a child #1278
  • Fixed nasty bug when using OverrideDefaultWindowCommandsBrush #2086
  • Fixed ProgressBar ignoring ‘IsIndeterminate’ value #2180 #2184
  • Fixed WindowCommands.ShowSeparators="False" is ignored #2188 #2195
  • Fixed missing ContentCharacterCasing for ToggleButton #2197
  • Fixed ComboBox watermark padding issue with IsEditable states #2210
  • Fixed missing ContentCharacterCasing for TabItem #2209
  • Fixed style inheritence of MetroAnimatedTabControl style #2219
  • Fixed NumericUpDown culture problem #2149 #2199 (@fredericoregateiro)
  • Fixed floating watermarks #2236 #2225 (@Dotnetifier)
  • Fixed not draggable Window when Flyout is open #1821 #1635 #2226
  • Fixed AvalonDock anchorables could not be dragged inside MetroWindow #2036 #2226
  • Fixed System menu present everywhere when fullscreen is toggled on #1849
  • Fixed not possible to format NumericUpDown value as hexidecimal #1375 #2245 (@xxMUROxx)
  • Fixed NumericUpDown when setting maximum in code behind #1885 #2245 (@xxMUROxx)

Version 1.1.2 released

Notes

This is a bug fix release of MahApps.Metro.

Bugfixes / Changes

  • Added alignment properties for MetroDataGridRowHeader style #1819
  • Fixed Gripper for MetroDataGridRowHeader style #1822
  • Fixed runtime change of IgnoreTaskbarOnMaximize with a maximized window (there was a bug with the frame) #1823 (39a7e05)
  • Fixed upgrading the WindowPlacementSettings on version change #1787 #1736 (ada352b)
  • Fixed a painting issue of the entire window and the maximize action (5ae97f9)
  • Fixed another Topmost bug: Window is going behind other windows on program start #1251 (6b0a8fa)
  • Fixed brief flashing window when launched (e.g. from the explorer) #1781 (4b42fe0)

Version 1.1.1 released

Notes

This is a bug fix release of MahApps.Metro.

Bugfixes

  • Fixed non working ShowIconOnTitleBar property if it is changed by XAML or in code behind #1817 (1e2c54e)
  • Fixed default value for UpgradeSettings (IWindowPlacementSettings) (509bd77)

Version 1.1.0 released

Notes

This is a bug fix and fetaure release of MahApps.Metro.

Features

  • It’s now possible to get an opened dialog from a MetroWindow #1739
  • Allow the user to disable the window dragging #1669
  • Dialogs can now use the ColorScheme = MetroDialogColorScheme.Inverted
  • Add MouseOverGlowEnabled to FlipView
  • Back/Forward Buttons now enabled/disabled instead visible/or not
  • AreAnimationsEnabled property for Flyout to show the Flyout directly or with animation
  • MaximumBodyHeight for MetroDialogSettings, so we can get a ScrollViewer for tall dialog content
  • IsMinButtonEnabled, IsMaxRestoreButtonEnabled and IsCloseButtonEnabled to enable/disable the window buttons at WindowButtonCommands @romerod #1562
  • IdealForegroundDisabledBrush to set the foreground for disabled window buttons at WindowButtonCommands #1581
  • MetroWindow animates now on minimize/maximize/restore window action (limited by ignoring the taskbar) #1756
  • It’s now possible to put the MahApps styles only in a window and the main app will remain unaffected (all buttons and commands will be styled as good as well.) #1777
  • The underline position is based on TabstripPlacement property of TabControl. (ControlsHelper.IsUnderlined) #1737 #1478
  • It’s now possible to upgrade the WindowPlacementSettings on version change (minor breaking change) #1787 #1736
  • New property ShowSeparators for WindowCommands, so it’s possible to hide the WindowCommands seperators
  • MetroTabItem now supports the TabControlHelper.IsUnderlined attached property #1795 #1796
  • Flyout focus enhancement #1805
    It’s now possible to set FocusedElement and AllowFocusElement to enable focusing mechanism
    • If AllowFocusElement is set to True the Flyout tries to focus the first focusable element, if there is no focusable element, it tries to focus an element in the header section.
    • If FocusedElement is set the Flyout focus this element.
  • Better default CapsLock icon for PasswordBox SHA
  • Add a callback for ShowIconOnTitleBar #1810, so we can hide the icon e.g. after window is loaded #1688
  • New CornerRadiuis property for MetroButton and ToggleButton style SHA, SHA, SHA

Changes

  • Simplify styles (backwards-compatible changes and fixes, e.g. disabled style) for PasswordBox, TextBox, DatePicker, CheckBox, RadioButton, SquareButton, MetroButton, ToggleButton, ComboBox, ComboBoxItem
  • Use IdealForegroundColor for AccentSelectedColorBrush (for better results in ListBox, ListView, DataGrid and ComboBox)

Bugfixes

  • Fixed maximize button path only displays partially when using SaveWindowPosition #1580 #1693
  • Fixed background of ComboBox #1713
  • Use UseLayoutRounding for MetroWindow for better pixel stuff SHA
  • Fixed ideal foreground for some color styles #1748
  • Fixed disabled window buttons foreground (and add IdealForegroundDisabledBrush to handle this) #1581
  • Fixed wrong max/restore button tool tip when maximized SHA
  • Fixed wrong window size while moving maximized window between monitors #1275
  • Fixed the cursor of the button in the ProgressDialog #1763
  • Fixed text wrapping for MessageDialog Message #1776 #1766
  • Fixed missing behavior when toggle UseNoneWindowStyle SHA
  • Fixed foreground color of WindowComands and WindowButtonCommands #1788 #1503
  • Fixed PasswordBox with ClearTextButton doesnt show the button #1718
  • Fixed wrong text for buttons in dialogs (it’s now preserve by default) #1793 #1755
  • Fixed usage of ClearTextButton: Subscribe to clear button even if control is already loaded. #1764 #1797
  • Fixed SplitButton SelectedIndex and SelectedItem (binds now two way by default) #1798
  • Fixed losing Window shadow [EnableDWMDropShadow] #1791 #1799
  • Fixed alignment of decrement button on vertical scrollbars #1800
  • Fixed non working button click action with TextboxHelper.ClearTextButton="True" after visibilty change #1268 #1809
  • Fixed CaretBrush after theme changed for PasswordBox SHA and DatePicker SHA
  • Fixed disabled ComboBox style (looks now like other controls) SHA
  • Fixed disabled DatePicker style and wrong showing watermark SHA
  • Fixed wrong WindowPlacement saving with Border snaps #1811 #1814
  • Fixed color disappearing for DataGrid selection #1728 #1816
  • Fixed FocusVisualStyle in Flyouts (surround Flyout content with AdornerDecorator) SHA

Version 1.0.0 released

Notes

This is the first stable release of MahApps.Metro.

We removed everything marked as obsolete and made some API changes, but from now on MahApps.Metro follows Semantic Versioning, at least API wise. Please note that minor visual changes can still occur if there’s a need for them.

A migration guide for the breaking changes is available here: https://github.com/MahApps/MahApps.Metro/blob/master/docs/v1.0-Migration-Guide.md

Features

  • Added a StatusBar and StatusBarItem style #1558
  • Added the TitleVisibility and CloseButtonVisibility properties to the flyouts to control the visibility of the header.
  • Added the ButtonHelper.PreserveTextCase attached property to control the automatic upper and lower casing of certain buttons. #1622
  • If an .ico file contains multiple icon sizes, MetroWindow now automatically selects the optimal icon size. #1242 #1628
  • ShowMetroDialogAsync now accepts MetroDialogSettings as argument so custom dialogs derived from the CustomDialog class can have a fade-in and fade-out animation
  • The ToggleSwitch control can now be dragged with the mouse to change the enabled state #1652 #1595
  • The CleanWindow’s close button now has a red background when hovering with the mouse.

Changes

  • The IsOpenChangedEvent of the Flyout control is now a routed event
  • The animation of the Flyout control matches the Windows 8 flyout behavior more closely #1460
  • Changed the event names of the ‘NumericUpDown’ control control #1518
  • Split up the ControlsHelper class into multiple more granular helper classes #1520 #1582
  • SimpleDialog has been renamed to CustomDialog #1613
  • BaseMetroDialog now inherits from ContentControl instead of Control. The DialogBody property has effectively been replaced by the Content property. #1615
  • All elements in the titlebar now use the IdealForegroundBrush for a better contrast to the accent color. #1611
  • The text in dialog buttons isn’t lowercase by default anymore.
  • Eliminated the need to pass the owning BaseMetroTabControl to MetroTabItem #1624
  • TextBoxHelper is now written with an uppercase B to match TextBox.

Bugfixes

  • Fixed the TabItem close button requiring MahApps.Metro.Resources #1524
  • Fixed the ClearType partially not working #1537
  • Fixed flyouts closing when clicking on a formatting element #1487 #1508
  • Fixed potential deadlocks when unloading the AppDomain #1584
  • Fixed bad Combobox behaviour (Popup dropdown height) with new items #1521
  • Fixed not showing window commands and buttons if a flyout is open by default #1627
  • Fixed closing a tab doesn’t work under specific circumstances #1639
  • Fixed the ToggleSwitch control not respecting the height and width properties. #1652 #1466
  • Fixed MetroProgressBar System.Windows.Media.Animation Warning 6 #1664
  • Fixed opening animation of dynamically created flyouts #1665 #1655
  • Fixed WindowSettings SaveWindowPosition saves to position 0,0 if window not shown #1671 #1672
  • Fixed memory leak and exception with dynamically created Flyouts (mostly happens with Caliburn) #1681
  • Fixed the focus border not showing up for message dialog buttons #1679 #1684
  • Fixed the automatic focus for dialogs #1679 #1684
  • Fixed blurry contextmenu/menu and menu items #1674 #1685

Version 0.14.0 released

Notes

We’re nearly ready to release version 1.0 of MahApps.Metro, so this may be the last unstable release.

There are no known breaking changes in this release, but we had to deprecate some things, particularly around the titlebar overlay behavior.

Please note that everything that is know deprecated will be removed in the 1.0 release, so you should prepare your applications soon.

Since we’re following semantic versioning, we promise to not break anything from version 1.0 to 2.0.

Features

MetroWindow now indicates whether it’s active or not

The MetroWindow now has the NonActiveWindowTitleBrush property that sets the window brush for an inactive window.

See PR #1320

Fine grained control over the titlebar element overlay behavior

The overlay behavior of the elements of the window titlebar can now be controlled individually.

There are is now an enum with four values:

  • Never
  • OverlayFlyout
  • OverlayHiddenTitleBar
  • Always

For more info, see PR #1427.

Underlined TabControl

Added the attached property ControlsHelper.IsUnderlined="True" for the TabControl control that adds an underline.

See PR #1425 for reference.

Custom ScrollBar width and height

The default ScrollBar width and height can now be set manually.

See PR #1387for more infos.

Direct FlatButton style

Previously you had to include the FlatButton resource dictionary to add a FlatButton. Now you can just set it at style of a button.

MetroWindow icon EdgeMode

It is now possible to set the EdgeMode of the window icon.

Changes

  • The DropDownButton now works less like a SplitButton #1442 #1459
  • Made a disabled Textbox, RichTextbox and PasswordBox a bit more visible #1410 #1420

Fixes

  • Don’t focus window titlebar elements #1472 #1475
  • Fixed selection with SelectionUnit=CellOrRowHeader #1452
  • Fixed treeview style to allow custom styling #1444 #1450
  • Fixed the Flyoutcontrol opening again when clicking on a control under the overlay #1411 #1428
  • Better coloring for blackout days #1133 #1426
  • Fixed the MetroWindow GlowBrush remaining visible when hiding window #1422 #1403 #1424
  • Enable text wrapping in ToggleSwitch Header #1415
  • TextboxHelper.Watermark should respect padding #1247
  • Fixed a blurry border on the MetroButton and MetroToggleButton style
  • Fix the ComboBox `CanContentScroll usage
  • Fixed the ComboBoxvirtualization #1132 #1394
  • Fixed DataGrid cell padding not being applied #977 #1393
  • Fixed various DataGrid issues #1381
  • Fixed a Flyout problem with width bound to ancestors ActualWidth

There are some more fixes, for a detailed list look into the commit log.

Version 0.13.1 released

Fixes

  • Fixed an issue with the accent color in dialogs #1270 #1277
  • The .NET 4.5 assembly in the previous release wasn’t signed

Version 0.13.0 released

Notes

The 0.13 release of MahApps.Metro marks a very important change in the MetroWindow infrastructure along with several other fixes and improvements.

We’ve also updated the MahApps.Metro.Resources NuGet package with the latest icons.

Features

Custom themes

MahApps.Metro now allows to define custom themes for the application. We’ve rewritten the ThemeManager for this (don’t worry, your old code should still work, but most old methods are now marked as Obsolete)

To add a theme, use the new AddAppTheme theme method.

Completely rewritten BorderlessWindowBehavior

The BorderlessWindowBehavior has been completely rewritten, to fix a number of issues that have accumulated over time.

For a complete list of fixes, see PR #1156

Auto-closing flyouts

Flyouts now have an option to be automatically closed when the user clicks outside of the flyout. We renamed the property IsPinnable (that had no use) to IsPinned for this. IsPinned is true by default and, if set to false, enables the auto-closing feature.

RangeSlider

The RangeSlider control has been completely rewritten because it was unusably broken before.

See PR #1055 for more info.

Titlebar enhancements

  • The titlebar now supports vector icons
  • Added LeftWindowCommands This means that the normal WindowCommands property is now obsolete and is called RightWindowCommands
  • The minimize/maximize/close button can now be styled
  • Added ShowWindowCommandsOnTop property for window buttons #1098 (thanks @100GPing100)

Others

  • Added properties to change the font size of a tile #864 #1013
  • Added support for ToggleButtons in the window commands #954
  • Replace existing RangeSlider by new RangeSlider - #885 - see PR #920 / #1055
  • Flyouts’ IsPinnable property doesn’t seem to do anything - #866 - #1000
  • Tile Font size - #864 -> #1013 (@100GPing100)
  • Update FlatSlider.xaml #858 (thanks @HansHuang)
  • Auto-close flyout #962 - #1000 (thanks @100GPing100)
  • Added the border to the visual studio styles. - #904 ( @punker76 ) PR #1140
  • Added ButtonCommandMetroPasswordBox ( @punker76 ) #993 PR #1097
  • Independently control dialog show/hide animation #1168 (@Savvkin)
  • The expander control now has a disabled look #1266 #1267

Fixes

  • Fixed the external dialog not being cleaned up propely and crahsing the next dialog #994 #996
  • Fixed various MetroWindow issues with multiple monitors #1099 #1136
  • Fixed an OverflowException in the clean window #897
  • Fixed issues with the airspace decorator #1077 #961
  • Support TextOptions.TextFormattingMode="Display" #889
  • Removed the unintended FocusVisualStyle from the window command buttons #833 #1012
  • Fixed an OverflowException that could occur with multiple monitors #624 #1014
  • Fixed various issues with the glow border #933 #936
  • Fixed an InvalidOperationException occuring if a dialog was opened after an external dialog #994 #996
  • Fixed the FlatSlider ignoring custom dimensions #858
  • Fixed an InvalidOperationException occuring in the GlowWindow #1044
  • Fixed various issues with the dialogs #1050
  • Fixed a warning in the flyout’s style #955
  • Fixed MetroProgressBar and ProgressRing issue Perfomance GPU” #812
  • Fixed FlipView HideBanner uses height, which is often NaN, should probably be ActualHeight instead #1053
  • Fixed the Tile static constructor. #1131 (thanks @maw136)
  • Fixed after an upgrade to 0.11, title bar icon would have silver background instead of blue (accent). - #922
  • Fixed GroupBox issue on flyout with the theme set to accent #1067 PR #1126 (thanks @Tide)

New website URL

From now on, the Mahapps.Metro documentation site lives at mahapps.com, instead of https://mahapps.com/MahApps.Metro

This means less typing for everyone!

The old links should still work and redirect to the top level domain.

Version 0.12.1 released

Notes

This is a bugfix release. It will most likely be the only bugfix release till v0.13.

Fixes

  • Fixed various bugs with the themed Flyouts (#947 #949):
    • A dark Flyout doesn’t have dark window commands anymore
    • Only the topmost Flyout changes the WindowCommands, if it is closed, the WindowCommands adapt to the underlying Flyout
    • Theme changes are respected properly
  • Flyouts respect the template margin #867 #974
  • Fixed an OverflowException in the CleanWindowStyle #897 #903
  • Fixed various bugs for the NumericUpDown control: #952 #953
    • Fix for NumericUpDown exception raised when trying to enter a number in scientific notation
    • Fixed a problem with too early speedup
  • Improved the performance for theme changes, they should now work instantly.
  • Fixed an issue with the WindowCommands of a CleanWindow, they were white and therefore invisible when a BorderlessWindowBehavior was attached.

Version 0.12.0 released

Notes

After only 2 months and nearly 300 commits, this is one of the feature-richest releases we’ve ever done.

This release, again, contains some breaking changes. We try to break things now rather than later, when we release version 1.0 (which is hopefully soon).

A quick overview:

  • ProgressIndicator is now removed, as it wasn’t working as expected. Use MetroProgressBar with IsIndeterminate = True instead, which should give a much smoother experience.
  • Like ProgressIndicator, MetroImage has been removed because it was broken. A better alternative is to use a simple Rectangle, as described here
  • For the same reasons, the Panorama control has been removed. While we have no drop-in replacement for this control, if you really want it back, you can always submit a pull request with a better Panorama, but beware, it most likely needs a serious rewrite.

Upcoming changes:

  • The RangeSlider control is currently being rewritten, so expect some breaking changes here.

Features

Dialog system

The dialog system has been overhauled for better extensibility.

The SimpleDialog class now allows to create a custom dialog.

ProgressDialog is a dialog that displays progress (duh!) inspired by Github for Windows. InputDialog works like the MessageDialog but allows the user to input text.

For reference, see PR #785 , #860 and #901 .

Just like modal dialogs, Flyouts can now be made modal by setting the IsModal = true. Thanks @grokys for this feature!

For reference, see PR #824

Themed Flyouts

A Flyout can now have a theme, just like MetroWindow

There are four different theme states, indicated by the FlyoutTheme enum:

  • FlyoutTheme.Adapt: The flyout will use the theme if the host window
  • FlyoutTheme.Inverse: The flyout will use the inverse theme of the host window
  • FlyoutTheme.Dark: Always dark. This is the default value
  • FlyoutTheme.Light: Always use the light theme
  • FlyoutTheme.Accent: Instead of the dark/light theme, use the accent of the host window

This behavior can be set through the Theme property

For reference, see PR #941

Expander

Added new Expander control that can can be used to close/open for example a GroupBox Thanks @Icehunter for this feature!

For reference, see PR #834

NumericUpDown

Implemented a NumericUpDown control, inspired by the Callisto style. Thanks @xxMUROxx for this feature!

New icons

Two new icons have been added to Mahapps.Metro.Resources:

  • appbar_more_horizontal
  • appbar_more_vertical

For reference, see PR #887

MetroNavigationWindow

Implemented a MetroNavigationWindow. This is the re-implementation of System.Windows.Navigation.NavigationWindow in a Metro-style

For reference, see PR #801

ContentTemplateSelector support for TransitioningContentControl.

You can now provide a ContentTemplateSelector for the TransitioningContentControl.

Added AccentedSquareButton and IdealForegroundColor key

  • Added an AccentedSquareButton. It looks like the SquareButton except that its Background is the current Accent.
  • Added an IdealForegroundColor key to every accent.

Changes

  • Removed title parameter from ShowMetroDialogAsync #842

For reference, see PR #846

Fixes

  • Fixed high GPU usage when the MetroProgressbar is hidden. #812 #817
  • Fixed the window glow not hiding when the window is hidden #839 #843
  • Fixed window not being able to have a greater width than the width of the main screen #874 #917
  • Fixed ShowWindowCommandsOnTop="False" not working for CleanWindowStyle #894 #896
  • Fixed using GlowBrush property enables the resizing of the window #851 #896
  • Fixed the ToggleSwitch’s built-in Top/Left margin #878 #880
  • Fixed ThemeManager’s OnThemeChanged work-around conflicting with other WPF internals #923 #932

Version 0.11.0 released

Notes

Warning: This release has a few breaking changes. A quick overview:

  • ‘Colours’ -> ‘Colors’ For consistency, we’ve chosen to rename all occurendes of ‘Colours’ to ‘Colors’
  • The ‘TransitioningContentControl’ use now an enumeration for ‘Transition’

More details here: https://github.com/MahApps/MahApps.Metro/wiki/Breaking-Changes-or-WTF-is-happening-with-the-ALPHA-version

Other things:

  • You can now put all the resource dictionaries in your ‘App.xaml’ file
  • ProgressIndicator is marked as ‘Obsolete’. In future, use ‘MetroProgressbar’ with ‘Indeterminate’ set to ‘true’
  • Like the ProgressIndicator, the Panorama will be removed in future versions. There is a chance that it will be rewritten and reintroduced later on.
  • TextBox, PasswordBox, ComboBox and DatePicker use now the Validation.ErrorTemplate for displaying errors. The default template is ValidationErrorTemplate.
  • The Demo application has been completely rewritten.

Important features

  • Implemented a FlipView control (#472)
  • Added a glow window like Github For Windows (#347)
  • Added a clean styled window (#516)
  • Added message dialogs (#764)
  • Added new accent colors (#681)

Fixes

  • #399 - GroupBox margin incorrectly applied when floating

Pull Requests

  • #391 - Added disabled VisualState for SwitchToggleButton [@zii-stefan-schweiger]
  • #406 - ToggleSwitchButton: Removed accent border when unchecked [@stefan-schweiger]
  • #407 - GroupBox margin fix [@punker76]
  • #414 - Add a event IsOpenChanged to Flyout [@dairentech]
  • #420 - Fix Window icon is too pixelated [@AleksandarDev]
  • #488 - Adapt the ListViews disabled state to the ListBox disabled state [@flagbug]
  • #604 - Support for smaller ProgressRings [@Cornyfisch]

As the last stable release was 8 months ago, not every feature/fix/PR is listed here.

Version 0.10.1 released

Thanks to all who have contributed fixes for this release, and hopefully now we can do shorter releases so that fixes and new features get to users more quickly!

Fixes

  • #215 - slider with orientation=”Vertical” doesn’t work
  • #244 - Panaroma Problem? button inside not working well
  • #253 - ToggleSwitch doesn’t change between IsEnabled states
  • #269 - Tile not shrinking towards center?
  • #280 - Textbox corner rectangle color
  • #294 - Issue #259 fix was undone in 8eda48129a
  • #311 - Controls.xaml breaks keyboard accelerator
  • #318 - Right Positioned Flyouts Do Not Show Close Arrow
  • #332 - Flyout
  • #356 - Wrong Size Calculation Of Grid In Flyout
  • #368 - Add ToggleSwitch Focus keyboard action
  • #384 - WPF .Net 4.5 App - MahApps looking for System.Windows.Interactivity 4.0

Pull Requests

  • #259 - Fixed titlebar behavior [@zii-dmg]
  • #273 - some style changes/bug fixes [@punker76]
  • #279 - Fixed the dotted focus border that shows up on the MetroWindow [@blooksa]
  • #295 - Hidden flyout resize fix [@lukaspj]
  • #297 - Add support for regular menu’s [@chandramouleswaran]
  • #301 - Fixes Issue #244 [@alfhenrik]
  • #302 - Fixed radiobutton foreground bug [@blooksa]
  • #303 - The min/max/close buttons can be tabbed to… [@blooksa]
  • #304 - add style for virtualised ListBox [@punker76]
  • #306 - The clear text button in textboxes doesn’t match the textbox foreground [@blooksa]
  • #307 - VS Styles do not support horizontal scrollbars [ @larrybeall]
  • #309 - Added a window for displaying all the icons in the resource assembly [@blooksa]
  • #310 - The cleartext button in the passwordbox doesn’t match the one in a textbox [@blooksa]
  • #313 - Update MahApps.Metro/Styles/Controls.ContextMenu.xaml [@programatix]
  • #335 - Use DockPanel in Flyouts instead of StackPanel [@EvilClosetMonkey]
  • #340 - The panorama demo can be exited by pressing the escape key [@Amrykid]
  • #343 - Added keys to ListBox and ListBoxItem so they can be based on [@stefan-schweiger]
  • #344 - Allow Panorama to be Garbage Collected [@mrosack]
  • #346 - “save window settings elsewhere” scenario [@punker76]
  • #358 - Flyouts improvement [@punker76]
  • #370 - Fixed issue #368 [@lmseddik]
  • #386 - Adding .NET 4.5 Support [@shiftkey]
  • #385 - Listview listbox item selected [@stefan-schweiger @shiftkey]