protected override void OnPreviewKeyDown(KeyEventArgs e) { base.OnPreviewKeyDown(e); if (e.Key == Key.Escape && _isInEditMode) { NumericTBEditorContainer.SetCurrentValue(VisibilityProperty, Visibility.Collapsed); _isInEditMode = false; e.Handled = true; } if (e.Key == Key.Enter && _isInEditMode) { NumericTBEditorContainer.SetCurrentValue(VisibilityProperty, Visibility.Collapsed); _isInEditMode = false; if (!IsReadOnly) { var value = NumericTBEditor.Value == null ? NumericTBEditor.MinValue : NumericTBEditor.Value.Value; SetCurrentValue(ValueProperty, RoundTimeSpan(_activeTextBoxPart.CreateTimeSpan(value))); } e.Handled = true; } }
private void TextBlock_MouseDown(object sender, MouseButtonEventArgs e) { if (e.ClickCount == 2) { _activeTextBoxPart = (TimeSpanPart)((TextBlock)sender).Tag; NumericTBEditorContainer.SetCurrentValue(VisibilityProperty, Visibility.Visible); _isInEditMode = true; } }
private void NumericTBEditor_OnIsKeyboardFocusWithinChanged(object sender, DependencyPropertyChangedEventArgs e) { var timeSpan = Value == null ? TimeSpan.Zero : Value.Value; if (IsKeyboardFocusWithin) { NumericTBEditor.SetCurrentValue(NumericTextBox.ValueProperty, timeSpan.GetTimeSpanPartValue(_activeTextBoxPart)); return; } NumericTBEditorContainer.SetCurrentValue(VisibilityProperty, Visibility.Collapsed); }