diff --git a/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/Chromes/ButtonChrome.cs b/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/Chromes/ButtonChrome.cs
new file mode 100644
index 00000000..c289d094
--- /dev/null
+++ b/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/Chromes/ButtonChrome.cs
@@ -0,0 +1,271 @@
+using System;
+using System.Windows;
+using System.Windows.Controls;
+
+namespace Microsoft.Windows.Controls.Chromes
+{
+ public class ButtonChrome : Control
+ {
+ #region CornerRadius
+
+ public static readonly DependencyProperty CornerRadiusProperty = DependencyProperty.Register("CornerRadius", typeof(CornerRadius), typeof(ButtonChrome), new UIPropertyMetadata(default(CornerRadius), new PropertyChangedCallback(OnCornerRadiusChanged)));
+ public CornerRadius CornerRadius
+ {
+ get { return (CornerRadius)GetValue(CornerRadiusProperty); }
+ set { SetValue(CornerRadiusProperty, value); }
+ }
+
+ private static void OnCornerRadiusChanged(DependencyObject o, DependencyPropertyChangedEventArgs e)
+ {
+ ButtonChrome buttonChrome = o as ButtonChrome;
+ if (buttonChrome != null)
+ buttonChrome.OnCornerRadiusChanged((CornerRadius)e.OldValue, (CornerRadius)e.NewValue);
+ }
+
+ protected virtual void OnCornerRadiusChanged(CornerRadius oldValue, CornerRadius newValue)
+ {
+ // TODO: Add your property changed side-effects. Descendants can override as well.
+ }
+
+ #endregion //CornerRadius
+
+ #region InnerCornerRadius
+
+ public static readonly DependencyProperty InnerCornerRadiusProperty = DependencyProperty.Register("InnerCornerRadius", typeof(CornerRadius), typeof(ButtonChrome), new UIPropertyMetadata(default(CornerRadius), new PropertyChangedCallback(OnInnerCornerRadiusChanged)));
+ public CornerRadius InnerCornerRadius
+ {
+ get { return (CornerRadius)GetValue(InnerCornerRadiusProperty); }
+ set { SetValue(InnerCornerRadiusProperty, value); }
+ }
+
+ private static void OnInnerCornerRadiusChanged(DependencyObject o, DependencyPropertyChangedEventArgs e)
+ {
+ ButtonChrome buttonChrome = o as ButtonChrome;
+ if (buttonChrome != null)
+ buttonChrome.OnInnerCornerRadiusChanged((CornerRadius)e.OldValue, (CornerRadius)e.NewValue);
+ }
+
+ protected virtual void OnInnerCornerRadiusChanged(CornerRadius oldValue, CornerRadius newValue)
+ {
+ // TODO: Add your property changed side-effects. Descendants can override as well.
+ }
+
+ #endregion //InnerCornerRadius
+
+ #region RenderActive
+
+ public static readonly DependencyProperty RenderActiveProperty = DependencyProperty.Register("RenderActive", typeof(bool), typeof(ButtonChrome), new UIPropertyMetadata(false, OnRenderActiveChanged));
+ public bool RenderActive
+ {
+ get { return (bool)GetValue(RenderActiveProperty); }
+ set { SetValue(RenderActiveProperty, value); }
+ }
+
+ private static void OnRenderActiveChanged(DependencyObject o, DependencyPropertyChangedEventArgs e)
+ {
+ ButtonChrome buttonChrome = o as ButtonChrome;
+ if (buttonChrome != null)
+ buttonChrome.OnRenderActiveChanged((bool)e.OldValue, (bool)e.NewValue);
+ }
+
+ protected virtual void OnRenderActiveChanged(bool oldValue, bool newValue)
+ {
+ // TODO: Add your property changed side-effects. Descendants can override as well.
+ }
+
+ #endregion //RenderActive
+
+ #region RenderChecked
+
+ public static readonly DependencyProperty RenderCheckedProperty = DependencyProperty.Register("RenderChecked", typeof(bool), typeof(ButtonChrome), new UIPropertyMetadata(false, OnRenderCheckedChanged));
+ public bool RenderChecked
+ {
+ get { return (bool)GetValue(RenderCheckedProperty); }
+ set { SetValue(RenderCheckedProperty, value); }
+ }
+
+ private static void OnRenderCheckedChanged(DependencyObject o, DependencyPropertyChangedEventArgs e)
+ {
+ ButtonChrome buttonChrome = o as ButtonChrome;
+ if (buttonChrome != null)
+ buttonChrome.OnRenderCheckedChanged((bool)e.OldValue, (bool)e.NewValue);
+ }
+
+ protected virtual void OnRenderCheckedChanged(bool oldValue, bool newValue)
+ {
+ // TODO: Add your property changed side-effects. Descendants can override as well.
+ }
+
+ #endregion //RenderChecked
+
+ #region RenderEnabled
+
+ public static readonly DependencyProperty RenderEnabledProperty = DependencyProperty.Register("RenderEnabled", typeof(bool), typeof(ButtonChrome), new UIPropertyMetadata(true, OnRenderEnabledChanged));
+ public bool RenderEnabled
+ {
+ get { return (bool)GetValue(RenderEnabledProperty); }
+ set { SetValue(RenderEnabledProperty, value); }
+ }
+
+ private static void OnRenderEnabledChanged(DependencyObject o, DependencyPropertyChangedEventArgs e)
+ {
+ ButtonChrome buttonChrome = o as ButtonChrome;
+ if (buttonChrome != null)
+ buttonChrome.OnRenderEnabledChanged((bool)e.OldValue, (bool)e.NewValue);
+ }
+
+ protected virtual void OnRenderEnabledChanged(bool oldValue, bool newValue)
+ {
+ // TODO: Add your property changed side-effects. Descendants can override as well.
+ }
+
+ #endregion //RenderEnabled
+
+ #region RenderFocused
+
+ public static readonly DependencyProperty RenderFocusedProperty = DependencyProperty.Register("RenderFocused", typeof(bool), typeof(ButtonChrome), new UIPropertyMetadata(false, OnRenderFocusedChanged));
+ public bool RenderFocused
+ {
+ get { return (bool)GetValue(RenderFocusedProperty); }
+ set { SetValue(RenderFocusedProperty, value); }
+ }
+
+ private static void OnRenderFocusedChanged(DependencyObject o, DependencyPropertyChangedEventArgs e)
+ {
+ ButtonChrome buttonChrome = o as ButtonChrome;
+ if (buttonChrome != null)
+ buttonChrome.OnRenderFocusedChanged((bool)e.OldValue, (bool)e.NewValue);
+ }
+
+ protected virtual void OnRenderFocusedChanged(bool oldValue, bool newValue)
+ {
+ // TODO: Add your property changed side-effects. Descendants can override as well.
+ }
+
+ #endregion //RenderFocused
+
+ #region RenderMouseOver
+
+ public static readonly DependencyProperty RenderMouseOverProperty = DependencyProperty.Register("RenderMouseOver", typeof(bool), typeof(ButtonChrome), new UIPropertyMetadata(false, OnRenderMouseOverChanged));
+ public bool RenderMouseOver
+ {
+ get { return (bool)GetValue(RenderMouseOverProperty); }
+ set { SetValue(RenderMouseOverProperty, value); }
+ }
+
+ private static void OnRenderMouseOverChanged(DependencyObject o, DependencyPropertyChangedEventArgs e)
+ {
+ ButtonChrome buttonChrome = o as ButtonChrome;
+ if (buttonChrome != null)
+ buttonChrome.OnRenderMouseOverChanged((bool)e.OldValue, (bool)e.NewValue);
+ }
+
+ protected virtual void OnRenderMouseOverChanged(bool oldValue, bool newValue)
+ {
+ // TODO: Add your property changed side-effects. Descendants can override as well.
+ }
+
+ #endregion //RenderMouseOver
+
+ #region RenderNormal
+
+ public static readonly DependencyProperty RenderNormalProperty = DependencyProperty.Register("RenderNormal", typeof(bool), typeof(ButtonChrome), new UIPropertyMetadata(true, OnRenderNormalChanged));
+ public bool RenderNormal
+ {
+ get { return (bool)GetValue(RenderNormalProperty); }
+ set { SetValue(RenderNormalProperty, value); }
+ }
+
+ private static void OnRenderNormalChanged(DependencyObject o, DependencyPropertyChangedEventArgs e)
+ {
+ ButtonChrome buttonChrome = o as ButtonChrome;
+ if (buttonChrome != null)
+ buttonChrome.OnRenderNormalChanged((bool)e.OldValue, (bool)e.NewValue);
+ }
+
+ protected virtual void OnRenderNormalChanged(bool oldValue, bool newValue)
+ {
+ // TODO: Add your property changed side-effects. Descendants can override as well.
+ }
+
+ #endregion //RenderNormal
+
+ #region RenderPressed
+
+ public static readonly DependencyProperty RenderPressedProperty = DependencyProperty.Register("RenderPressed", typeof(bool), typeof(ButtonChrome), new UIPropertyMetadata(false, OnRenderPressedChanged));
+ public bool RenderPressed
+ {
+ get { return (bool)GetValue(RenderPressedProperty); }
+ set { SetValue(RenderPressedProperty, value); }
+ }
+
+ private static void OnRenderPressedChanged(DependencyObject o, DependencyPropertyChangedEventArgs e)
+ {
+ ButtonChrome buttonChrome = o as ButtonChrome;
+ if (buttonChrome != null)
+ buttonChrome.OnRenderPressedChanged((bool)e.OldValue, (bool)e.NewValue);
+ }
+
+ protected virtual void OnRenderPressedChanged(bool oldValue, bool newValue)
+ {
+ // TODO: Add your property changed side-effects. Descendants can override as well.
+ }
+
+ #endregion //RenderPressed
+
+ #region RenderSelected
+
+ public static readonly DependencyProperty RenderSelectedProperty = DependencyProperty.Register("RenderSelected", typeof(bool), typeof(ButtonChrome), new UIPropertyMetadata(false, OnRenderSelectedChanged));
+ public bool RenderSelected
+ {
+ get { return (bool)GetValue(RenderSelectedProperty); }
+ set { SetValue(RenderSelectedProperty, value); }
+ }
+
+ private static void OnRenderSelectedChanged(DependencyObject o, DependencyPropertyChangedEventArgs e)
+ {
+ ButtonChrome buttonChrome = o as ButtonChrome;
+ if (buttonChrome != null)
+ buttonChrome.OnRenderSelectedChanged((bool)e.OldValue, (bool)e.NewValue);
+ }
+
+ protected virtual void OnRenderSelectedChanged(bool oldValue, bool newValue)
+ {
+ // TODO: Add your property changed side-effects. Descendants can override as well.
+ }
+
+ #endregion //RenderSelected
+
+ #region RenderHighlighted
+
+ public static readonly DependencyProperty RenderHighlightedProperty = DependencyProperty.Register("RenderHighlighted", typeof(bool), typeof(ButtonChrome), new UIPropertyMetadata(false, OnRenderHighlightedChanged));
+ public bool RenderHighlighted
+ {
+ get { return (bool)GetValue(RenderHighlightedProperty); }
+ set { SetValue(RenderHighlightedProperty, value); }
+ }
+
+ private static void OnRenderHighlightedChanged(DependencyObject o, DependencyPropertyChangedEventArgs e)
+ {
+ ButtonChrome buttonChrome = o as ButtonChrome;
+ if (buttonChrome != null)
+ buttonChrome.OnRenderHighlightedChanged((bool)e.OldValue, (bool)e.NewValue);
+ }
+
+ protected virtual void OnRenderHighlightedChanged(bool oldValue, bool newValue)
+ {
+ // TODO: Add your property changed side-effects. Descendants can override as well.
+ }
+
+ #endregion //RenderHighlighted
+
+ #region Contsructors
+
+ static ButtonChrome()
+ {
+ DefaultStyleKeyProperty.OverrideMetadata(typeof(ButtonChrome), new FrameworkPropertyMetadata(typeof(ButtonChrome)));
+ }
+
+ #endregion //Contsructors
+ }
+}
diff --git a/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/Themes/Generic.xaml b/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/Themes/Generic.xaml
index c865fa9f..d418e895 100644
--- a/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/Themes/Generic.xaml
+++ b/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/Themes/Generic.xaml
@@ -3,7 +3,8 @@
xmlns:sys="clr-namespace:System;assembly=mscorlib"
xmlns:local="clr-namespace:Microsoft.Windows.Controls"
xmlns:coreConverters="clr-namespace:Microsoft.Windows.Controls.Core.Converters"
- xmlns:magConverters="clr-namespace:Microsoft.Windows.Controls.Mag.Converters">
+ xmlns:magConverters="clr-namespace:Microsoft.Windows.Controls.Mag.Converters"
+ xmlns:chrome="clr-namespace:Microsoft.Windows.Controls.Chromes">
@@ -1253,4 +1254,424 @@
+
+
+
+
+
+
+ 3
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/WPFToolkit.Extended.csproj b/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/WPFToolkit.Extended.csproj
index 46788cd8..2e5d3c46 100644
--- a/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/WPFToolkit.Extended.csproj
+++ b/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/WPFToolkit.Extended.csproj
@@ -73,6 +73,7 @@
+