【发布时间】:2014-11-27 15:01:08
【问题描述】:
我正在使用扩展的 WPF 工具包。
https://wpftoolkit.codeplex.com/wikipage?title=TimeSpanUpDown
当我单击箭头时,默认情况下它会增加小时的值。
有没有办法让它首先增加秒作为默认行为?
【问题讨论】:
标签: c# wpf wpftoolkit timespan
我正在使用扩展的 WPF 工具包。
https://wpftoolkit.codeplex.com/wikipage?title=TimeSpanUpDown
当我单击箭头时,默认情况下它会增加小时的值。
有没有办法让它首先增加秒作为默认行为?
【问题讨论】:
标签: c# wpf wpftoolkit timespan
我会以这种方式扩展 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;
}
}
这样,如果您单击箭头,您只会增加秒数。
【讨论】:
如果您使用将属性CurrentDateTimePart="Second" 添加到 xaml 中的 TimeSpanUpDown 元素,您将获得所需的效果。这只是在第一次加载时设置默认的DateTimePart,键盘控件仍然按预期工作。
【讨论】: