From b58e6a3e1adb2bc153d2795d324097348e61e68d Mon Sep 17 00:00:00 2001 From: romerod Date: Wed, 5 Mar 2014 16:53:06 +0100 Subject: [PATCH] Add possibility to enabled/disable the close button --- MahApps.Metro/Controls/MetroWindow.cs | 10 ++++++++++ MahApps.Metro/Themes/MetroWindow.xaml | 1 + 2 files changed, 11 insertions(+) diff --git a/MahApps.Metro/Controls/MetroWindow.cs b/MahApps.Metro/Controls/MetroWindow.cs index 646e4159a5..a6721309b9 100644 --- a/MahApps.Metro/Controls/MetroWindow.cs +++ b/MahApps.Metro/Controls/MetroWindow.cs @@ -35,6 +35,7 @@ public class MetroWindow : Window public static readonly DependencyProperty ShowTitleBarProperty = DependencyProperty.Register("ShowTitleBar", typeof(bool), typeof(MetroWindow), new PropertyMetadata(true, null, OnShowTitleBarCoerceValueCallback)); public static readonly DependencyProperty ShowMinButtonProperty = DependencyProperty.Register("ShowMinButton", typeof(bool), typeof(MetroWindow), new PropertyMetadata(true)); public static readonly DependencyProperty ShowCloseButtonProperty = DependencyProperty.Register("ShowCloseButton", typeof(bool), typeof(MetroWindow), new PropertyMetadata(true)); + public static readonly DependencyProperty CloseButtonEnabledProperty = DependencyProperty.Register("CloseButtonEnabled", typeof(bool), typeof(MetroWindow), new PropertyMetadata(true)); public static readonly DependencyProperty ShowMaxRestoreButtonProperty = DependencyProperty.Register("ShowMaxRestoreButton", typeof(bool), typeof(MetroWindow), new PropertyMetadata(true)); public static readonly DependencyProperty TitlebarHeightProperty = DependencyProperty.Register("TitlebarHeight", typeof(int), typeof(MetroWindow), new PropertyMetadata(30)); public static readonly DependencyProperty TitleCapsProperty = DependencyProperty.Register("TitleCaps", typeof(bool), typeof(MetroWindow), new PropertyMetadata(true)); @@ -216,6 +217,15 @@ public bool ShowCloseButton set { SetValue(ShowCloseButtonProperty, value); } } + /// + /// Gets/sets if the close button is enabled. + /// + public bool CloseButtonEnabled + { + get { return (bool)GetValue(CloseButtonEnabledProperty); } + set { SetValue(CloseButtonEnabledProperty, value); } + } + /// /// Gets/sets the TitleBar's height. /// diff --git a/MahApps.Metro/Themes/MetroWindow.xaml b/MahApps.Metro/Themes/MetroWindow.xaml index 61aaef7430..43362b1e54 100644 --- a/MahApps.Metro/Themes/MetroWindow.xaml +++ b/MahApps.Metro/Themes/MetroWindow.xaml @@ -445,6 +445,7 @@ Style="{DynamicResource IronicallyNamedChromelessButtonStyle}" ToolTip="{Binding Close, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Controls:WindowButtonCommands}}}" Visibility="{Binding ShowCloseButton, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Controls:MetroWindow}}, Converter={StaticResource BooleanToVisibilityConverter}}" + IsEnabled="{Binding CloseButtonEnabled, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Controls:MetroWindow}}}" Foreground="{TemplateBinding Foreground}">