Version 1.6.1
13 Mar 2018As part of this release we had 4 commits which resulted in 2 issues being closed.
Bugs
Where to get it
You can download this release from MahApps.Metro
As part of this release we had 4 commits which resulted in 2 issues being closed.
Bugs
You can download this release from MahApps.Metro
As part of this release we had 362 commits which resulted in 153 issues being closed.
Features / Changes / Improvements (most interesting)
MahApps.Metro.Styles.MetroWatermarkTextBlock
style to make it easier to set custom properties like FontFamily
or FontSize
for all Watermarks.WindowChrome
and related things with reference to ControlzEx
#3021
NumericUpDown
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
NumericInputMode
property with the new flag enumeration NumericInput
(default is NumericInput.All
)HasDecimals
as obsoleteNumericUpDown
, HotKeyBox
and TimerPickerBase
doesn’t focus for the first time when the FocusManager will be used.ComboBox
via resource keys
ComboBoxBorderThemeThickness
(default 1)ComboBoxPopupBorderThemeThickness
(default 1)ComboBoxPopupBorderThemePadding
(default 1)GroupBox
and Expander
via resource keys
GroupBoxHeaderThemePadding
(default 4)ExpanderHeaderThemePadding
(default 2)ExpanderToggleButtonEllipseThemeSize
(default 18)Badged
control has now a different look when disabled. thx @xxMUROxx
MahApps.Metro.Brushes.Badged.DisabledBackgroundBrush
Watermark
TextBoxHelper.Watermark
for HotKeyBox
instead own DependencyProperty (marked as obsolete).TextBoxHelper.AutoWatermark
for HotKey
DependencyProperty of HotKeyBox
.TextBoxHelper.WatermarkTrimming
attached property to set the text trimming behavior to employ when (floating) watermark overflows the content area. thx to @amkuchta
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
StandardGroupBox
styleStandardExpander
styleTabControlHelper
TabControlHelper.CloseButtonEnabled
attached property to show / hide the close button (default is true).TabControlHelper.CloseTabCommand
attached property which executes if the TabItem
will be closed.TabControlHelper.CloseTabCommandParameter
attached property which will be passed to the CloseTabCommand
.TextBoxHelper.ButtonsAlignment
support for PasswordBox
styles #3074 @waleswood
MetroHeader
control which can contains any other content and can display a header on top of this content. <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>
ScrollViewerHelper
class
IsHorizontalScrollWheelEnabled
attached property. If it’s set to true and a horizontal ScrollBar
is visible then the mouse wheel scrolls to left and right.VerticalScrollBarOnLeftSide
attached property from ScrollBarHelper
to ScrollViewerHelper
. ScrollBarHelper is now marked as obsolete.FlatButtonForegroundBrush
in the new MahApps.Metro.Styles.FlatButtonFocusVisualStyle
which is used now for MetroFlatButton
and MetroFlatToggleButton
PasswordBoxHelper
RevealButtonContent
and RevealButtonContentTemplate
attached propertiesDefaultRevealButtonIcon
ContentControl to RevealButtonContent
attached propertyMahApps.Metro.Styles.WindowButton.Close.Light.Win10
and MahApps.Metro.Styles.WindowButton.Close.Dark.Win10
stylesItemHelper
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
ContentPadding
dependency property to change the padding of the inner content in an easy way.HamburgerMenu
HamburgerListBoxItemStyle
-> HamburgerMenuItemStyle
HamburgerListBoxStyle
-> HamburgerMenuListStyle
UWPCommunityToolkit
style (update template to keep options visible)
HamburgerMenuTemplate
resource dictionaryItemContainerStyle
and OptionsItemContainerStyle
properties. This makes it easier to change the inner styles for the items (and option items)0
HamburgerMenuImageItem
: Downgrade thumbnail property from BitmapImage
to subclass ImageSource
ItemInvoked
event (as an alternative to ItemClick
and OptionsItemClick
)SelectionIndicator
(rectangle) which can be enabled with the new ShowSelectionIndicator
dependency property
HamburgerMenuSelectionIndicatorThemeWidth
default 6
HamburgerMenuSelectionIndicatorThemeHeight
default 24
FocusVisualStyle
ItemFocusVisualStyle
dependency property which will be re-created if one of these properties are changed: OpenPaneLength
, CompactPaneLength
and IsPaneOpen
. Default template is HamburgerMenuItemFocusVisualTemplate
.HamburgerMenuItem
style by setting the FocusVisualStyle
property.HamburgerMenu
resources to Control styles to allow style manipulation and fix binding expression infosPanePlacement
handling for right alignedToolTip
DependencyProperty
for HamburgerMenuItem
Dialogs
MahApps.Metro.Styles.MetroDialog
and set this as defaultBaseMetroDialog
resources to Control styles to allow easier dialog style manipulationProgressDialogController.SetProgressBarForegroundBrush(Brush)
so that you can customize a progress dialog’s progress bar foreground Brush.MetroWindow
(Dialogs
)
IsAnyDialogOpen
dependency property. This property will be updated if a dialog is shown or not.OwnerCanCloseWithDialog
property at MetroDialogSettings
which can be used to handle how the owner of the dialog can be closed.IsCloseButtonEnabledWithDialog
property at MetroWindow
which indicates if the close button should be enabled or not if a dialog is shown.HandleOverlayOnHide
and HandleOverlayOnShow
methods sets the IsCloseButtonEnabledWithDialogPropertyKey
and restores focus if neededOverlayFadeIn
and OverlayFadeOut
properties to set/override the overlay fade in/out Storyboards which are used for the Dialogs
HideMetroDialogAsync
fails sometimes to close dialog (async call order)Slider
style: MahApps.Metro.Styles.Slider.Win10
MahApps.Metro.Styles.Slider.HorizontalTemplate.Win10
, MahApps.Metro.Styles.Slider.VerticalTemplate.Win10
MahApps.Metro.Styles.Slider.HorizontalTrack.Win10
, MahApps.Metro.Styles.Slider.VerticalTrack.Win10
MahApps.Metro.Styles.Slider.Thumb.Win10
Slider
style: MahApps.Metro.Styles.Slider
(mark old as obsolete)
MahApps.Metro.Styles.Slider.HorizontalTemplate
, MahApps.Metro.Styles.Slider.VerticalTemplate
MahApps.Metro.Styles.Slider.HorizontalTrack
, MahApps.Metro.Styles.Slider.VerticalTrack
MahApps.Metro.Styles.Slider.Thumb
RangeSlider
style: MahApps.Metro.Styles.RangeSlider.Win10
MahApps.Metro.Styles.RangeSlider.HorizontalTemplate.Win10
, MahApps.Metro.Styles.RangeSlider.VerticalTemplate.Win10
MahApps.Metro.Styles.Slider.HorizontalTrack.Win10
, MahApps.Metro.Styles.Slider.VerticalTrack.Win10
MahApps.Metro.Styles.Slider.Thumb.Win10
, MahApps.Metro.Styles.RangeSlider.HorizontalMiddleThumb.Win10
, MahApps.Metro.Styles.RangeSlider.VerticalMiddleThumb.Win10
RangeSlider
style: MahApps.Metro.Styles.RangeSlider
SliderHelper
brush properties also for RangeSlider
MahApps.Metro.Styles.RangeSlider.HorizontalMiddleThumb
, MahApps.Metro.Styles.RangeSlider.VerticalMiddleThumb
MetroThumb
instead Thumb
ReservedSpace
for all TickBar
controls instead Margin
SliderHelper
: Add new attached properties for all possible Brushes
SliderHelper.EnableMouseWheel
and SliderHelper.ChangeValueBy
for RangeSlider
too.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
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
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
SpellCheck.IsEnabled
changes from MaterialDesignInXamlToolkit
@ButchersBoy #650 Removes the extra hidden classes and enables flexible style changes, it’s more WPF now.CalendarDayButton
and CalendarButton
from Calendar
.MetroProgressBar
MetroProgressBar
does not work inside ControlTemplateGlowWindowBehavior
ResizeBorderThickness
must also be set to 0 on maximizePropertyChangeNotifier
from ControlzEx
ResizeBorderThickness
as it’s handled by ControlzEx
ComboBoxItem
, if a ComboBox
is inside a ContentControl
.FlipView
: Bind ItemStringFormat
to ContentStringFormat
TimePicker
and DateTimePicker
after changing the cultureDialogTitleFontSize
and DialogMessageFontSize
via DynamicResource at the base MetroDialog styleHorizontalScrollBarVisibility
and VerticalScrollBarVisibility
for HotKeyBox
and NumericUpdDown
to Hidden, cause the inner TextBox has this as default tooSlider
: remove linear gradient brush from horizontal and vertical track value style. RangeSlider
: fix margin of the middle thumb.Bugs
Features
Feature Requests
You can download this release from MahApps.Metro
OwningWindow
will be used if available to detect the theme. #2840
DateTimePicker
when the time is cleared if a date is selected #2837
HamburgerMenu
changes and improvements
HamburgerMenuIconItem
helper class which can be used to put any object icon to the menu item.ItemCommand
and OptionsItemCommand
Command
for HamburgerMenuItem
PaneForeground
for HamburgerMenu and Splitview and new Foreground/Background brushes MahApps.Metro.HamburgerMenu.PaneBackgroundBrush
, MahApps.Metro.HamburgerMenu.PaneForegroundBrush
VerticalScrollBarOnLeftSide
to show the vertical scrollbar on the left sideHamburgerVisibility
property UWPCommunityToolkit #1020
Content
for HamburgerMenu
only if one of the inner ListBox controls has a selected item.HamburgerMenuHeaderTemplate
property to set a header right of the HamburgerMenu button. @SilverDragon135 #2917
ICommandSource
and handle Command binding change to hook or unhook command executable.MahApps.Metro.Styles.HamburgerMenu
style key to the HamburgerMenu.ShowInTaskbar = false
, when double click on the title bar of a minimized window, the window will be restored instead of maximized. #2854 @hausenism
MetroTabItem
#2803
Badged
control. Thx to @ButchersBoyControlsHelper.CornerRadius
can now used for SplitButton
and DropDownButton
.TabControl
and MetroTabControl
#2902
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
}
Brush
attached properties to enable easy changing the underline brushes.
TabControlHelper.UnderlineBrush
TabControlHelper.UnderlineSelectedBrush
TabControlHelper.UnderlineMouseOverBrush
TabControlHelper.UnderlineMouseOverSelectedBrush
AnimatedTabControl
and AnimatedSingleRowTabControl
styles and for MetroAnimatedTabControl
and MetroAnimatedSingleRowTabControl
#2905
AnimatedSingleRowTabControl
styles
ClearTypeHint
and wrong Margin
for ComboBox
and ComboBoxItem
#2903
ListView
style issues
CheckBox
Flyout
changes and improvements
Flyout
modal usage. All title bar commands are now hidden if a Flyout
is modal.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.Flyout
from ContentControl
to HeaderedContentControl
which has the correct properties for headers.Border
for Flyout
GrayBrush7
and WhiteBrush
for menu Separator
instead fixed colors.DropDownButton
. Don’t set ItemTemplate
to ContentTemplate
, ItemTemplateSelector
to ContentTemplateSelector
and ItemStringFormat
to ContentStringFormat
. This breaks the whole usage of the content stuff and shows a BindingExpression path error. #2883
UsernameCharacterCasing
property for LoginDialogSettings
#2683
SelectionChanged
event of SplitButton
which fires now only once.TransitionCompleted
event to MetroContentControl
and WindowTransitionCompleted
event to MetroWindow
which will be fired after the loaded Storyboard is completed.WatermarkAlignment
attached property to TextBoxHelper
which indicates the horizontal alignment of the watermark (incl. floating watermark).DataGridHelper
with EnableCellEditAssist
attached property which enabled direct editing for CheckBox and ComboBox cells. (default to false) Thx to @ButchersBoy (taken from MaterialDesignInXamlToolkit)HotKeyBox
(thx @thoemmi)ButtonHelper.PreserveTextCase
, ButtonHelper.CornerRadius
and ControlsHelper.ButtonWidth
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
.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
FlyoutsControl
TopMost
issue: If the window is top most and you switch to another window the top most will be gone.IconScalingMode
to MetroWindow. It’s forwarded to MultiFrameImage.MultiFrameImageMode
to set the icon scaling.
MultiFrameImageMode.ScaleDownLargerFrame
MultiFrameImageMode.NoScaleSmallerFrame
DateTimePicker
and TimePicker
#2710
DateTimePicker.SelectedDate
to BindsTwoWayByDefault
. The reason is that we do not have to use Mode=TwoWay explicit, and DatePicker.SelectedDate has BindsTwoWayByDefault too.null
but 00:00:00
and 0001.01.01 00.00.00
respectivelyTimePicker
#2700 (@p76984275)DateTimePicker
and TimePicker
on lost focus. Fix also Shift+Tab focus moving.SplitView
and HamburgerMenu
control #2704
SplitView
source comes from the UniversalWPF
GitHub repo (from @dotMorten) with some changes from @Evangelink and @punker76.HamburgerMenu
source comes from the UWPCommunityToolkit
GitHub repo.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).TextBox
’s with the styles MetroButtonTextBox
and SearchMetroTextBox
can now use the button also if IsReadOnly="True"
(only if the button command is set)AutoWatermark
attached property at TextBoxHelper
#2722 (@xxMUROxx) which is able to get the DisplayAttribute
from the bound property in following cases:
"{Binding Path=Property}"
"{Binding Path=Property.SubProperty}"
"{Binding Path=CollectionProperty}"
"{Binding Path=CollectionProperty[0].SubProperty}"
"{Binding Path=CollectionProperty[0]}"
TextBox
, ComboBox
, NumericUpDown
, DatePicker
, TimePicker
and DateTimePicker
Flyout
changes for better Margin
usage
FlyoutsControl
actual width and a Margin
for the Flyout
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 MarginHorizontalContentAlignment="Stretch"
and Position="Right"
Flyout which covers the whole windowButton
(ButtonBase
) -> MahApps.Metro.Styles.MetroButton
ToggleButton
-> MahApps.Metro.Styles.MetroToggleButton
Expander
closing animation and make it possible to change both animations (expand and collapse). #2769 (@ Alkalinee)TabControl
and TabItem
style for VS #2768
TextBox
ContextMenu changes #2772, #2758 by @Deadpikle
+ 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>
```
CustomDialog
improvements #2775
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
+ 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));
protected override MetroDialogSettings ConfigureSettings(MetroDialogSettings settings)
{
return new MyCustomDialogSettings();
}
```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);
}
}
}
DateTimePicker
and TimePicker
controls #2299 #2510 (@xxMUROxx)HotKeyBox
#2322 (@thoemmi)LoginDialog
#2308 #2305 (@manekovskiy)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" />
Auto Close
feature for Flyout
#2228 #1710 (@Sikta)
IsAutoCloseEnabled
to trueAutoCloseInterval
(default 5000 ms)PasswordBoxBindingBehavior
and IsWaitingForData
#2355
StylizedBehaviors
should be detached on unloadPasswordBoxBindingBehavior
, it doesn’t work e.g. in TabControl TabItemsIsWaitingForData
for MetroButtonTextBox
, MetroPasswordBox
, MetroButtonPasswordBox
, MetroButtonRevealedPasswordBox
Eye
and ClearTextButton feature for MetroButtonRevealedPasswordBox
ContentStringFormat
TemplateBinding to ToolTip #2359 (@nrpog) #2363ControlsHelper.ButtonWidth
for ComboBox
and other stuff #2365
ChromelessButtonStyle
Padding to 0ButtonContentTemplate
in TextBoxHelper
IsPressed
, IsMouseOver
)MetroComboBoxDropDownToggleButtonStyle
for ComboBox
toggle buttonEllipseDiameterScale
to ProgressRing
#2204 #2382 (@petvetbr)WindowButtonCommands
enhancements #2378
MahApps.Metro.Styles.WindowButtonCommands.Win10
and MahApps.Metro.Templates.WindowButtonCommands.Win10
Flyouts
and NumericUpDown
#2381 #2166 (@petvetbr)DialogTitleFontSize
and DialogMessageFontSize
TextButton
in TextBoxHelper which handles the visibility of the button in MetroButtonPasswordBox
and MetroButtonTextBox
styles #2387ToggleSwitch
and ToggleSwitchButton
#2410
ToggleSwitch
is now inherited from HeaderedContentControl
HeaderFontFamily
for ToggleSwitch
MahApps.Metro.Styles.ToggleSwitchButton.Win10
, MahApps.Metro.Styles.ToggleSwitch.Win10
MahApps.Metro.Styles.ToggleSwitchButton
, MahApps.Metro.Styles.ToggleSwitch
ToggleSwitchFontFamily.Win10
, ToggleSwitchHeaderFontFamily.Win10
ToggleSwitchFontSize.Win10
, ToggleSwitchHeaderFontSize.Win10
IsPressed
stateMahApps.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
AccentBaseColor
and AccentBaseColorBrush
(full color)Flyout
changes
CloseCommandParameter
dependency propertyFlipView
changes
MouseOverGlowEnabled
is now obsolete, use MouseHoverBorderEnabled
insteadMouseHoverBorderBrush
and MouseHoverBorderThickness
dependency propertyCircularNavigation
for the FlipView
#2389BindsTwoWayByDefault
removed from IsActiveProperty
of ProgressRing
#2438 (@xxMUROxx)Caliburn.Micro
sampleTile
control: HorizontalTitleAlignment
and VerticalTitleAlignment
#2293TextBoxHelper.ButtonFontSize
#2345 Also add a new font size ClearTextButtonFontSize
(default to 16) for all ‘ClearText’ buttonsMetroFlatToggleButton
style like MetroFlatButton #2481 (@Koopakiller)MetroThumbContentControl
for MetroWindow
title #2487
TitleCaps
with TitleCharacterCasing
(marked as obsolete). Now title can be Upper
, Lower
or Normal
MahApps.Metro.Styles.ContentControlEx
and MahApps.Metro.Styles.MetroThumbContentControl
Flyout
improvement caused by #2485 #2523
ContentControlEx
for header, so it’s now possible to use ControlsHelper
attached properties ContentCharacterCasing
, HeaderFontSize
, HeaderFontWeight
and HeaderFontStretch
ControlsHelper.HeaderMargin
to handle the Margin from Flyout sideShowDialogsOverTitleBar
for `MetroWindow? which allows showing title bar while showing dialogs (fixes #2109) #2534 (@Deadpikle)ShowModalInputExternal
, ShowModalLoginExternal
and ShowModalMessageExternal
. #2518 (@adeniltonbs)NonActiveWindowTitleColorBrush
and NonActiveBorderColorBrush
ArrowMouseOverBrush
, ArrowPressedBrush
ContentTemplate
, ContentTemplateSelector
and ContentStringFormat
for DropDownButton, if this proeprties are empty DropDownButton will be use the ItemXYZ propertiesprotected virtual void SetContextMenuPlacementTarget(ContextMenu contextMenu)
to DropDownButtonMahApps.Metro.Styles.MetroCircleButtonStyle
MahApps.Metro.Styles.MetroCircleToggleButtonStyle
MahApps.Metro.Styles.MetroCircleFocusVisual
TextBoxHelper.SelectAllOnFocus="True"
#2307 (@sachokFoX)RangeSlider
for lower and upper value tooltip #1833 (@Alkalinee)MetroListBoxItem
#1892 (@ye4241)WaitUntilUnloadedAsync
for custom dialogs #1910 #1910 (@IsNull)Culture
dependency property for NumericUpDown
#1874 (@panastas91)WindowCommands
height span now the entire height of the title bar #1902 (@Dotnetifier)FontSize
in Dialogs is now changeable #1941Dialog:DialogParticipation.Register="{Binding}"
IDialogCoordinator
/ DialogCoordinator.Instance
to launch dialogs from inside a VMToggleSwitch
improvements and fixes #1945
ToggleSwitchButtonStyle
and style key MetroToggleSwitchButton
BorderThickness
and BorderBrush
for toggle button style now customizableToggleSwitchFontFamily
and ToggleSwitchHeaderFontFamily
ToggleSwitchFontSize
and ToggleSwitchHeaderFontSize
OnSwitchBrush
and OffSwitchBrush
ThumbIndicatorBrush
and ThumbIndicatorDisabledBrush
ThumbIndicatorWidth
Validation.ErrorTemplate
support #1917ToggleSwitch
itself or the toggle button was clickedCheckChangedCommand
, CheckedCommand
and UnCheckedCommand
CheckChangedCommandParameter
, CheckedCommandParameter
and UnCheckedCommandParameter
ComboBoxHelper
attached properties MaxLength
and CharacterCasing
#1949 #1948ButtonStyle
dependency property and new style key ButtonDropDownStyle
for the defaultArrowBrush
and ArrowVisibility
dependency propertiesMenuStyle
dependency propertyIconTemplate
dependency propertyComboBox
where IsEditable="False"
#1958 #1953SelectAllOnFocus
dependency property for NumericUpDown
(with default to true like ComboBox does)NumericUpDown
up and down buttons #1962 (@Prophetebe)ButtonStyle
, ButtonArrowStyle
dependency properties and new style keys ButtonSplitStyle
, ButtonSplitArrowStyle
ArrowBrush
and ArrowVisibility
dependency propertiesListBoxStyle
dependency propertyIconTemplate
dependency propertyMahApps
#1985 (@DaCheeseMan)ExpanderHelper
with
HeaderUpStyle
, HeaderDownStyle
and HeaderLeftStyle
, HeaderRightStyle
. So it’s now possible to create your own header toggle styles without rewriting the Expander
style.BorderThickness
property, the Expander
uses now the new value converter ThicknessBindingConverter
, so setting the BorderThickness
is much better than before.GroupBox
BorderThickness
property.DataGrid
row and cell color styling #2004DisabledVisualElementVisibility
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).ProgressDialogController
#2013 #1702ButtonsAlignment
(attached) property to have possibility to set NumericUpDown
(TextBox
) buttons on the left side #2024 (@QuantumDeveloper)CancellationToken
to cancel dialogs #2022 #2018 (@thoemmi)ProgressRing.IsActive
to true
#2029MetroDialogs
fixes and changes #2032 #1149
DialogSettings
property is now publicCustomResourceDictionary
for DialogSettings
OnLoaded
TreeView
style enhancements #2041
VirtualisedMetroTreeView
MetroValidationPopup
style and new CloseOnMouseLeftButtonDown
dependency property #2058 #1469ProgressDialog
is not set to Indetermined by default anymore, must be set explicitly by calling ProgressDialogController.SetIndeterminate()
#2097Closed
event to ProgressDialogController
#2097ConfigurationErrorsException
if the user.config file is corrupt #2112 (@Remolutionary)Canceled
event (and IsCanceled
property) for ProgressDialogController
#2150 (@bigworld12)Controls:ControlsHelper.ContentCharacterCasing
for ContentControl, DropDownButton and in the future for WindowCommands
PreserveTextCase
attached property from ControlsHelper (it was introduced in alpha version)PreserveTextCase
attached property as obsoleteContentCharacterCasing
for MetroDataGridColumnHeader
and MetroGridViewColumnHeader
tooStatusBar
’s background color now matches the title bar #2173 #2174 (@thoemmi)Slider
value on MouseWheel event. #2171 (@xxMUROxx)MetroThumb
in order to be better in Touch environment #1853 (@ycaoyang)NumericUpDown
with Integer only option #2065 (@feinstein)CornerRadius
for ComboBox
#2207DataGridNumericUpDownColumn
#2205
DataCell
foreground inheritenceContentControlEx
to reduce some boilerplate XAML code
ContentCharacterCasing
usage (Button
, GroupBox
, Expander
, ListView
columns, DataGrid
columns, DropDownButton
, SplitButton
, WindowCommands
, TabItem
)MessageDialog
#2223 (@akinyooa)LoginDialog
#2230 (@mgnslndh)Thumb
for Window DragMove #2226ComboBox
style respects textbox helper button content property #2264 (@ButchersBoy)Tile
as disabled #2263 #2262 (@xxMUROxx)CloseButtonIsCancel
for Flyout
close button #2256 (@BlythMeister)DefaultButtonFocus
for default focused button in MessageDialog #2265 (@BlythMeister)UseFloatingWatermark
for NumericUpDown
#2202 #2245 (@xxMUROxx)SplitButton
/DropDownButton
is disabled #2272 (@p76984275)MetroProgressBar
performance issue #1855 #1860 (@zandrei007)Invalid window handle
thrown when IgnoreTaskbarOnMaximize
bound to a true value #1880 #1883NumericUpDown
IsReadonly
issue #1840 (@xxMUROxx)ThemeManager
issue if resource source case in App.xaml
does not match #1759 (@sickboy)FlowDirection="RightToLeft"
#1927 #1924System.NullReferenceException
for HandleTheme
in BaseMetroDialog
#1933 #1931TreeView
#1934 #1907ShowInTaskbar=False
#1940 #1912IsReadOnly
usage/binding for NumericUpDown
(and TextBox
…) #1942 #1914ToggleSwitch
validation shows red border but doesn’t show error text #1917 #1945OnLabel
/OffLabel
at ToggleSwitch
#1867 #1945NumericUpDown
#1903 #1959CheckBox
, RadioButton
, and GroupBox
#1979DataGrid
row conditional foreground #1939 (@spaccabit)DataGridRow
style (e.g. row selection) #1876, #1492, #1243, #809DataGridNumericUpDownColumn
styling #1878DataGridRow
validation #1930MetroProgressBar
#2012RangeSlider
with binding and values between ticks #2006 (@drayde)ScrollBarHelper.VerticalScrollBarOnLeftSide
usage #2025Pivot
’s header selected item when modify the Selected-Pivot-Item by code #2010 (@ycaoyang)ProgressDialog
cannot find the AccentColorBrush resources #1149NumericUpDown
won’t rise its value changed event #2031MetroCircleToggleButtonStyle
BorderBrush not using TemplateBinding #1573TreeViewItem
does not respond to changes when inside MahApps window. #2038TextmarkHelper.Watermark
with Caliburn.Micro
#1059Padding
usage for MetroTabItem
: How to increase the spacing between Tab Items? #2074NumericUpDown
#1818DatePicker
and NumericUpDown
controls #1683RangeSlider
memory leak #2064MetroTabItem
added from a child #1278OverrideDefaultWindowCommandsBrush
#2086ProgressBar
ignoring ‘IsIndeterminate’ value #2180 #2184WindowCommands.ShowSeparators="False"
is ignored #2188 #2195ContentCharacterCasing
for ToggleButton
#2197ComboBox
watermark padding issue with IsEditable
states #2210ContentCharacterCasing
for TabItem
#2209MetroAnimatedTabControl
style #2219NumericUpDown
culture problem #2149 #2199 (@fredericoregateiro)AvalonDock
anchorables could not be dragged inside MetroWindow
#2036 #2226NumericUpDown
value as hexidecimal #1375 #2245 (@xxMUROxx)NumericUpDown
when setting maximum in code behind #1885 #2245 (@xxMUROxx)This is a bug fix release of MahApps.Metro.
MetroDataGridRowHeader
style #1819MetroDataGridRowHeader
style #1822IgnoreTaskbarOnMaximize
with a maximized window (there was a bug with the frame) #1823 (39a7e05)WindowPlacementSettings
on version change #1787 #1736 (ada352b)Topmost
bug: Window is going behind other windows on program start #1251 (6b0a8fa)This is a bug fix release of MahApps.Metro.
UpgradeSettings (IWindowPlacementSettings)
(509bd77)This is a bug fix and fetaure release of MahApps.Metro.
ColorScheme = MetroDialogColorScheme.Inverted
MouseOverGlowEnabled
to FlipView
AreAnimationsEnabled
property for Flyout
to show the Flyout
directly or with animationMaximumBodyHeight
for MetroDialogSettings
, so we can get a ScrollViewer
for tall dialog contentIsMinButtonEnabled
, IsMaxRestoreButtonEnabled
and IsCloseButtonEnabled
to enable/disable the window buttons at WindowButtonCommands
@romerod #1562IdealForegroundDisabledBrush
to set the foreground for disabled window buttons at WindowButtonCommands
#1581MetroWindow
animates now on minimize/maximize/restore window action (limited by ignoring the taskbar) #1756TabstripPlacement
property of TabControl
. (ControlsHelper.IsUnderlined
) #1737 #1478WindowPlacementSettings
on version change (minor breaking change) #1787 #1736ShowSeparators
for WindowCommands, so it’s possible to hide the WindowCommands
seperatorsMetroTabItem
now supports the TabControlHelper.IsUnderlined
attached property #1795 #1796FocusedElement
and AllowFocusElement
to enable focusing mechanism
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.FocusedElement
is set the Flyout
focus this element.PasswordBox
SHA
ShowIconOnTitleBar
#1810, so we can hide the icon e.g. after window is loaded #1688CornerRadiuis
property for MetroButton
and ToggleButton
style SHA, SHA, SHA
PasswordBox
, TextBox
, DatePicker
, CheckBox
, RadioButton
, SquareButton
, MetroButton
, ToggleButton
, ComboBox
, ComboBoxItem
IdealForegroundColor
for AccentSelectedColorBrush
(for better results in ListBox
, ListView
, DataGrid
and ComboBox
)UseLayoutRounding
for MetroWindow
for better pixel stuff SHA
IdealForegroundDisabledBrush
to handle this) #1581ProgressDialog
#1763UseNoneWindowStyle
SHA
ClearTextButton
doesnt show the button #1718TextboxHelper.ClearTextButton="True"
after visibilty change #1268 #1809PasswordBox
SHA and DatePicker
SHA
ComboBox
style (looks now like other controls) SHA
DatePicker
style and wrong showing watermark SHA
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
TitleVisibility
and CloseButtonVisibility
properties to the flyouts to control the visibility of the header.ButtonHelper.PreserveTextCase
attached property to control the automatic upper and lower casing of certain buttons. #1622MetroWindow
now automatically selects the optimal icon size. #1242 #1628ShowMetroDialogAsync
now accepts MetroDialogSettings
as argument so custom dialogs derived from the CustomDialog
class can have a fade-in and fade-out animationToggleSwitch
control can now be dragged with the mouse to change the enabled state #1652 #1595CleanWindow
’s close button now has a red background when hovering with the mouse.IsOpenChangedEvent
of the Flyout
control is now a routed eventFlyout
control matches the Windows 8 flyout behavior more closely #1460ControlsHelper
class into multiple more granular helper classes #1520 #1582SimpleDialog
has been renamed to CustomDialog
#1613BaseMetroDialog
now inherits from ContentControl
instead of Control
.
The DialogBody
property has effectively been replaced by the Content
property. #1615IdealForegroundBrush
for a better contrast to the accent color. #1611BaseMetroTabControl
to MetroTabItem
#1624TextBoxHelper
is now written with an uppercase B
to match TextBox
.TabItem
close button requiring MahApps.Metro.Resources #1524ToggleSwitch
control not respecting the height and width properties. #1652 #1466MetroProgressBar
System.Windows.Media.Animation Warning 6 #1664WindowSettings
SaveWindowPosition saves to position 0,0 if window not shown #1671 #1672We’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.
The MetroWindow
now has the NonActiveWindowTitleBrush
property that sets the window brush for an inactive window.
See PR #1320
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.
Added the attached property ControlsHelper.IsUnderlined="True"
for the TabControl
control that adds an underline.
See PR #1425 for reference.
The default ScrollBar width and height can now be set manually.
See PR #1387for more infos.
Previously you had to include the FlatButton
resource dictionary to add a FlatButton
.
Now you can just set it at style of a button.
It is now possible to set the EdgeMode
of the window icon.
DropDownButton
now works less like a SplitButton
#1442 #1459Flyout
control opening again when clicking on a control under the overlay #1411 #1428TextboxHelper.Watermark
should respect padding #1247MetroButton
and MetroToggleButton
styleComboBox
`CanContentScroll usageComboBox
virtualization #1132 #1394There are some more fixes, for a detailed list look into the commit log.
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.
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.
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
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.
The RangeSlider
control has been completely rewritten because it was unusably broken before.
See PR #1055 for more info.
LeftWindowCommands
This means that the normal WindowCommands
property is now obsolete and is called RightWindowCommands
ToggleButton
s in the window commands #954RangeSlider
by new RangeSlider
- #885 - see PR #920 / #1055Flyout
s’ IsPinnable property doesn’t seem to do anything - #866 - #1000ButtonCommandMetroPasswordBox
( @punker76 ) #993 PR #1097MetroWindow
issues with multiple monitors #1099 #1136OverflowException
in the clean window #897TextOptions.TextFormattingMode="Display"
#889FocusVisualStyle
from the window command buttons #833 #1012OverflowException
that could occur with multiple monitors #624 #1014InvalidOperationException
occuring if a dialog was opened after an external dialog #994 #996FlatSlider
ignoring custom dimensions #858InvalidOperationException
occuring in the GlowWindow
#1044MetroProgressBar
and ProgressRing
issue Perfomance GPU” #812FlipView
HideBanner uses height, which is often NaN, should probably be ActualHeight instead #1053Tile
static constructor. #1131 (thanks @maw136)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.
This is a bugfix release. It will most likely be the only bugfix release till v0.13.
Flyout
doesn’t have dark window commands anymoreFlyout
changes the WindowCommands, if it is closed, the WindowCommands adapt to the underlying FlyoutOverflowException
in the CleanWindowStyle
#897 #903NumericUpDown
control: #952 #953
WindowCommands
of a CleanWindow
, they were white and therefore invisible when a BorderlessWindowBehavior
was attached.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.ProgressIndicator
, MetroImage
has been removed because it was broken.
A better alternative is to use a simple Rectangle
, as described here
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:
RangeSlider
control is currently being rewritten, so expect some breaking changes here.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
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 windowFlyoutTheme.Inverse
: The flyout will use the inverse theme of the host windowFlyoutTheme.Dark
: Always dark. This is the default valueFlyoutTheme.Light
: Always use the light themeFlyoutTheme.Accent
: Instead of the dark/light theme, use the accent of the host windowThis behavior can be set through the Theme
property
For reference, see PR #941
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
Implemented a NumericUpDown
control, inspired by the Callisto style.
Thanks @xxMUROxx for this feature!
Two new icons have been added to Mahapps.Metro.Resources:
For reference, see PR #887
Implemented a MetroNavigationWindow
. This is the re-implementation of System.Windows.Navigation.NavigationWindow in a Metro-style
For reference, see PR #801
TransitioningContentControl
.You can now provide a ContentTemplateSelector
for the TransitioningContentControl
.
ShowMetroDialogAsync
#842For reference, see PR #846
MetroProgressbar
is hidden. #812 #817ShowWindowCommandsOnTop="False"
not working for CleanWindowStyle
#894 #896Warning: This release has a few breaking changes. A quick overview:
More details here: https://github.com/MahApps/MahApps.Metro/wiki/Breaking-Changes-or-WTF-is-happening-with-the-ALPHA-version
Other things:
As the last stable release was 8 months ago, not every feature/fix/PR is listed here.
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!