private static void OnGotFocus(object sender, RoutedEventArgs e) { TimePickerBase picker = (TimePickerBase)sender; if (!e.Handled && picker.Focusable) { if (Equals(e.OriginalSource, picker)) { // MoveFocus takes a TraversalRequest as its argument. var request = new TraversalRequest((Keyboard.Modifiers & ModifierKeys.Shift) == ModifierKeys.Shift ? FocusNavigationDirection.Previous : FocusNavigationDirection.Next); // Gets the element with keyboard focus. var elementWithFocus = Keyboard.FocusedElement as UIElement; // Change keyboard focus. if (elementWithFocus != null) { elementWithFocus.MoveFocus(request); } else { picker.Focus(); } e.Handled = true; } else if (picker._textBox != null && Equals(e.OriginalSource, picker._textBox)) { picker._textBox.SelectAll(); e.Handled = true; } } }
private static void OnGotFocus(object sender, RoutedEventArgs e) { TimePickerBase picker = (TimePickerBase)sender; if (!e.Handled && (picker._textBox != null)) { if (Equals(e.OriginalSource, picker)) { picker._textBox.Focus(); e.Handled = true; } else if (Equals(e.OriginalSource, picker._textBox)) { picker._textBox.SelectAll(); e.Handled = true; } } }
private static void CanClearControl(CanExecuteRoutedEventArgs args) { if (args.Handled) { return; } if (args.OriginalSource is not DependencyObject control || false == TextBoxHelper.GetClearTextButton(control)) { return; } args.CanExecute = control switch { DatePicker datePicker => !ControlsHelper.GetIsReadOnly(datePicker), TimePickerBase timePicker => !timePicker.IsReadOnly, TextBoxBase textBox => !textBox.IsReadOnly, ComboBox comboBox => !comboBox.IsReadOnly, _ => true }; }