按时间间隔 TimePicker WPF 允许微调器 Increment/decrement
Allow spinner Increment/decrement by time interval TimePicker WPF
所以我在 XAML 视图文件中声明了一个 TimePicker
:
<xctk:TimePicker Grid.Column="5" Value="{Binding TimeFrame}" TimeInterval="00:30:0" Format="Custom" FormatString="HH:mm" Margin="3 3 3 0" MinWidth="100"/>
绑定到我的视图模型中的 TimeFrame
方法 class:
private DateTime _timeFrame;
public DateTime TimeFrame
{
get { return _timeFrame; }
set
{
if (value != _timeFrame)
{
_timeFrame = value;
OnPropertyChanged("TimeFrame");
}
}
}
目前,将 TimeInterval
设置为 00:30:0
只会在下拉列表中显示这些间隔。
有没有办法让 up/down 微调器也只 increment/decrement 30 分钟?有没有办法用 TimePicker
注册按钮按下?
您应该能够通过子类化 TimePicker
并在分钟部分增加或减少时将 Step
属性 设置为 30
来实现此目的:
public class CustomTimePicker : Xceed.Wpf.Toolkit.TimePicker
{
protected override void OnIncrement()
{
SetStep();
base.OnIncrement();
}
protected override void OnDecrement()
{
SetStep();
base.OnDecrement();
}
private void SetStep()
{
Step = CurrentDateTimePart == Xceed.Wpf.Toolkit.DateTimePart.Minute ? 30 : 1;
}
}
用法:
<local:CustomTimePicker Grid.Column="5" Value="{Binding TimeFrame}"
TimeInterval="00:30:0" Format="Custom"
FormatString="HH:mm"
Margin="3 3 3 0" MinWidth="100" />
所以我在 XAML 视图文件中声明了一个 TimePicker
:
<xctk:TimePicker Grid.Column="5" Value="{Binding TimeFrame}" TimeInterval="00:30:0" Format="Custom" FormatString="HH:mm" Margin="3 3 3 0" MinWidth="100"/>
绑定到我的视图模型中的 TimeFrame
方法 class:
private DateTime _timeFrame;
public DateTime TimeFrame
{
get { return _timeFrame; }
set
{
if (value != _timeFrame)
{
_timeFrame = value;
OnPropertyChanged("TimeFrame");
}
}
}
目前,将 TimeInterval
设置为 00:30:0
只会在下拉列表中显示这些间隔。
有没有办法让 up/down 微调器也只 increment/decrement 30 分钟?有没有办法用 TimePicker
注册按钮按下?
您应该能够通过子类化 TimePicker
并在分钟部分增加或减少时将 Step
属性 设置为 30
来实现此目的:
public class CustomTimePicker : Xceed.Wpf.Toolkit.TimePicker
{
protected override void OnIncrement()
{
SetStep();
base.OnIncrement();
}
protected override void OnDecrement()
{
SetStep();
base.OnDecrement();
}
private void SetStep()
{
Step = CurrentDateTimePart == Xceed.Wpf.Toolkit.DateTimePart.Minute ? 30 : 1;
}
}
用法:
<local:CustomTimePicker Grid.Column="5" Value="{Binding TimeFrame}"
TimeInterval="00:30:0" Format="Custom"
FormatString="HH:mm"
Margin="3 3 3 0" MinWidth="100" />