wpf TimeSpanUpDown首先增加秒数

时间:2014-11-27 15:01:08

标签: c# wpf wpftoolkit timespan

我正在使用Extended WPF Toolkit。

https://wpftoolkit.codeplex.com/wikipage?title=TimeSpanUpDown

单击箭头时,默认情况下会增加小时值。

有没有办法让它首先将秒数增加为默认行为?

2 个答案:

答案 0 :(得分:2)

我会以这种方式扩展WPF Toolkit TimeSpanUpDown控件:

public class TimeSpanUpDown : Xceed.Wpf.Toolkit.TimeSpanUpDown
{
    protected override void OnIncrement()
    {
        if (Value.HasValue)
        {
            UpdateTimeSpan(1);
        }
        else
        {
            Value = DefaultValue ?? TimeSpan.Zero;
        }
    }

    protected override void OnDecrement()
    {
        if (Value.HasValue)
        {
            UpdateTimeSpan(-1);
        }
        else
        {
            Value = DefaultValue ?? TimeSpan.Zero;
        }
    }

    private void UpdateTimeSpan(int value)
    {
        TimeSpan timeSpan = (TimeSpan)Value;
        timeSpan = timeSpan.Add(new TimeSpan(0, 0, 0, value, 0));

        if (IsLowerThan(timeSpan, Minimum))
        {
            Value = Minimum;
            return;
        }

        if (IsGreaterThan(timeSpan, Maximum))
        {
            Value = Maximum;
            return;
        }

        Value = timeSpan;
    }

}

这样,如果单击箭头,则只增加秒数。

答案 1 :(得分:1)

如果您使用将属性CurrentDateTimePart="Second"添加到xaml中的T​​imeSpanUpDown元素,您将获得所需的效果。这只是在第一次加载时设置默认DateTimePart,键盘控件仍然按预期工作。