All the controls missing in WPF. Over 1 million downloads.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

208 lines
8.9 KiB

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)
{
//we always want the InnerBorderRadius to be one less than the CornerRadius
CornerRadius newInnerCornerRadius = new CornerRadius(Math.Max(0, newValue.TopLeft - 1),
Math.Max(0, newValue.TopRight - 1),
Math.Max(0, newValue.BottomRight - 1),
Math.Max(0, newValue.BottomLeft - 1));
InnerCornerRadius = newInnerCornerRadius;
}
#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 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 Contsructors
static ButtonChrome()
{
DefaultStyleKeyProperty.OverrideMetadata(typeof(ButtonChrome), new FrameworkPropertyMetadata(typeof(ButtonChrome)));
}
#endregion //Contsructors
}
}