diff --git a/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/NumericUpDown/Implementation/NumericUpDown.cs b/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/NumericUpDown/Implementation/NumericUpDown.cs index 4429a8b5..84bd6e81 100644 --- a/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/NumericUpDown/Implementation/NumericUpDown.cs +++ b/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/NumericUpDown/Implementation/NumericUpDown.cs @@ -115,40 +115,6 @@ namespace Microsoft.Windows.Controls #endregion //Properties - #region Base Class Overrides - - public override void OnApplyTemplate() - { - base.OnApplyTemplate(); - - if (SelectAllOnGotFocus) - { - //in order to select all the text we must handle both the keybord (tabbing) and mouse (clicking) events - TextBox.GotKeyboardFocus += OnTextBoxGotKeyBoardFocus; - TextBox.PreviewMouseLeftButtonDown += OnTextBoxPreviewMouseLeftButtonDown; - } - } - - #endregion //Base Class Overrides - - #region Event Handlers - - private void OnTextBoxGotKeyBoardFocus(object sender, RoutedEventArgs e) - { - TextBox.SelectAll(); - } - - void OnTextBoxPreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e) - { - if (!TextBox.IsKeyboardFocused) - { - e.Handled = true; - TextBox.Focus(); - } - } - - #endregion //Event Handlers - #region Methods protected static decimal ParseDecimal(string text, IFormatProvider cultureInfo) diff --git a/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/NumericUpDown/Themes/Generic.xaml b/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/NumericUpDown/Themes/Generic.xaml index e148e7de..e98d23bc 100644 --- a/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/NumericUpDown/Themes/Generic.xaml +++ b/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/NumericUpDown/Themes/Generic.xaml @@ -33,6 +33,7 @@ HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}" IsReadOnly="{Binding IsEditable, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource InverseBoolConverter}}" MinWidth="20" AcceptsReturn="False" + SelectAllOnGotFocus="{Binding SelectAllOnGotFocus, RelativeSource={RelativeSource TemplatedParent}}" TextAlignment="{Binding TextAlignment, RelativeSource={RelativeSource TemplatedParent}}" TextWrapping="NoWrap" TabIndex="{TemplateBinding TabIndex}" diff --git a/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/WatermarkTextBox/Implementation/WatermarkTextBox.cs b/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/WatermarkTextBox/Implementation/WatermarkTextBox.cs index 7a6b67bd..170952db 100644 --- a/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/WatermarkTextBox/Implementation/WatermarkTextBox.cs +++ b/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/WatermarkTextBox/Implementation/WatermarkTextBox.cs @@ -1,6 +1,7 @@ using System; using System.Windows; using System.Windows.Controls; +using System.Windows.Input; namespace Microsoft.Windows.Controls { @@ -8,6 +9,17 @@ namespace Microsoft.Windows.Controls { #region Properties + #region SelectAllOnGotFocus + + public static readonly DependencyProperty SelectAllOnGotFocusProperty = DependencyProperty.Register("SelectAllOnGotFocus", typeof(bool), typeof(WatermarkTextBox), new PropertyMetadata(false)); + public bool SelectAllOnGotFocus + { + get { return (bool)GetValue(SelectAllOnGotFocusProperty); } + set { SetValue(SelectAllOnGotFocusProperty, value); } + } + + #endregion //SelectAllOnGotFocus + #region Watermark public static readonly DependencyProperty WatermarkProperty = DependencyProperty.Register("Watermark", typeof(object), typeof(WatermarkTextBox), new UIPropertyMetadata(null)); @@ -40,5 +52,28 @@ namespace Microsoft.Windows.Controls } #endregion //Constructors + + #region Base Class Overrides + + protected override void OnGotKeyboardFocus(KeyboardFocusChangedEventArgs e) + { + if (SelectAllOnGotFocus) + SelectAll(); + + base.OnGotKeyboardFocus(e); + } + + protected override void OnPreviewMouseLeftButtonDown(MouseButtonEventArgs e) + { + if (!IsKeyboardFocused) + { + e.Handled = true; + Focus(); + } + + base.OnPreviewMouseLeftButtonDown(e); + } + + #endregion //Base Class Overrides } } diff --git a/ExtendedWPFToolkitSolution_35/Src/WPFToolkit.Extended/NumericUpDown/Themes/Generic.xaml b/ExtendedWPFToolkitSolution_35/Src/WPFToolkit.Extended/NumericUpDown/Themes/Generic.xaml index 31d72438..d712315e 100644 --- a/ExtendedWPFToolkitSolution_35/Src/WPFToolkit.Extended/NumericUpDown/Themes/Generic.xaml +++ b/ExtendedWPFToolkitSolution_35/Src/WPFToolkit.Extended/NumericUpDown/Themes/Generic.xaml @@ -32,7 +32,8 @@ Foreground="{TemplateBinding Foreground}" HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}" IsReadOnly="{Binding IsEditable, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource InverseBoolConverter}}" - MinWidth="20" AcceptsReturn="False" + MinWidth="20" AcceptsReturn="False" + SelectAllOnGotFocus="{Binding SelectAllOnGotFocus, RelativeSource={RelativeSource TemplatedParent}}" TextAlignment="{Binding TextAlignment, RelativeSource={RelativeSource TemplatedParent}}" TextWrapping="NoWrap" TabIndex="{TemplateBinding TabIndex}"