Permalink
Cannot retrieve contributors at this time
Fetching contributors…
| //<SnippetCodeBehind> | |
| using System; | |
| using System.Windows; | |
| using System.Windows.Controls; | |
| namespace MyUserControl | |
| { | |
| public partial class NumericUpDown : System.Windows.Controls.UserControl | |
| { | |
| /// <summary> | |
| /// Initializes a new instance of the NumericUpDownControl. | |
| /// </summary> | |
| public NumericUpDown() | |
| { | |
| InitializeComponent(); | |
| } | |
| //<SnippetDependencyProperty> | |
| /// <summary> | |
| /// Identifies the Value dependency property. | |
| /// </summary> | |
| public static readonly DependencyProperty ValueProperty = | |
| DependencyProperty.Register( | |
| "Value", typeof(decimal), typeof(NumericUpDown), | |
| new FrameworkPropertyMetadata(MinValue, new PropertyChangedCallback(OnValueChanged), | |
| new CoerceValueCallback(CoerceValue))); | |
| /// <summary> | |
| /// Gets or sets the value assigned to the control. | |
| /// </summary> | |
| public decimal Value | |
| { | |
| get { return (decimal)GetValue(ValueProperty); } | |
| set { SetValue(ValueProperty, value); } | |
| } | |
| private static object CoerceValue(DependencyObject element, object value) | |
| { | |
| decimal newValue = (decimal)value; | |
| NumericUpDown control = (NumericUpDown)element; | |
| newValue = Math.Max(MinValue, Math.Min(MaxValue, newValue)); | |
| return newValue; | |
| } | |
| private static void OnValueChanged(DependencyObject obj, DependencyPropertyChangedEventArgs args) | |
| { | |
| NumericUpDown control = (NumericUpDown)obj; | |
| RoutedPropertyChangedEventArgs<decimal> e = new RoutedPropertyChangedEventArgs<decimal>( | |
| (decimal)args.OldValue, (decimal)args.NewValue, ValueChangedEvent); | |
| control.OnValueChanged(e); | |
| } | |
| //</SnippetDependencyProperty> | |
| //<SnippetRoutedEvent> | |
| /// <summary> | |
| /// Identifies the ValueChanged routed event. | |
| /// </summary> | |
| public static readonly RoutedEvent ValueChangedEvent = EventManager.RegisterRoutedEvent( | |
| "ValueChanged", RoutingStrategy.Bubble, | |
| typeof(RoutedPropertyChangedEventHandler<decimal>), typeof(NumericUpDown)); | |
| /// <summary> | |
| /// Occurs when the Value property changes. | |
| /// </summary> | |
| public event RoutedPropertyChangedEventHandler<decimal> ValueChanged | |
| { | |
| add { AddHandler(ValueChangedEvent, value); } | |
| remove { RemoveHandler(ValueChangedEvent, value); } | |
| } | |
| /// <summary> | |
| /// Raises the ValueChanged event. | |
| /// </summary> | |
| /// <param name="args">Arguments associated with the ValueChanged event.</param> | |
| protected virtual void OnValueChanged(RoutedPropertyChangedEventArgs<decimal> args) | |
| { | |
| RaiseEvent(args); | |
| } | |
| //</SnippetRoutedEvent> | |
| private void upButton_Click(object sender, EventArgs e) | |
| { | |
| Value++; | |
| } | |
| private void downButton_Click(object sender, EventArgs e) | |
| { | |
| Value--; | |
| } | |
| private const decimal MinValue = 0, MaxValue = 100; | |
| } | |
| } | |
| //</SnippetCodeBehind> |