示例#1
0
        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;
            }
        }
示例#2
0
 private void TextBlock_MouseDown(object sender, MouseButtonEventArgs e)
 {
     if (e.ClickCount == 2)
     {
         _activeTextBoxPart = (TimeSpanPart)((TextBlock)sender).Tag;
         NumericTBEditorContainer.SetCurrentValue(VisibilityProperty, Visibility.Visible);
         _isInEditMode = true;
     }
 }
示例#3
0
        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);
        }