在 RadTimeline wpf 中仅使用 HourInterval 时显示日期
show dates when using only HourInterval in RadTimeline wpf
我不太熟悉 "Wpf" 和 "Telerik" 控件。
我正在使用
telerik RadTimeline
并希望在
中显示时间表
HourInterval.
用户可以select开始和结束日期,时间轴将以小时为单位显示间隔。
但是这个时间线的问题是它只显示小时而不显示这个小时 exist.So 的日期,用户可能会感到困惑。
如果日期能显示在时间轴的最上面一行就好了
您可以在调试模式下滚动查看此代码。
<telerik:RadTimeline x:Name="timeline"
VerticalScrollBarVisibility="Visible"
PeriodStart="1-Jan-2010 12:00:00 AM" PeriodEnd="3-Jan-2010 11:59:59 PM">
<telerik:RadTimeline.Intervals>
<telerik:HourInterval />
</telerik:RadTimeline.Intervals>
</telerik:RadTimeline>
您可以通过创建自定义 IntervalFormatterProvider 来实现此目的
<Window xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"
xmlns:formatter="clr-namespace:YouFormatterNamespace"
>
<telerik:RadTimeline x:Name="timeline"
VerticalScrollBarVisibility="Visible"
PeriodStart="1-Jan-2010 12:00:00 AM" PeriodEnd="3-Jan-2010 11:59:59 PM">
<telerik:RadTimeline.Resources>
<formatter:HourFormatterProvider x:Key="HourFormatterProvider">
</formatter:HourFormatterProvider>
</telerik:RadTimeline.Resources>
<telerik:RadTimeline.Intervals>
<telerik:HourInterval FormatterProvider="{StaticResource HourFormatterProvider}"/>
</telerik:RadTimeline.Intervals>
</telerik:RadTimeline>
</Window>
提供商示例:
public class HourFormatterProvider : IIntervalFormatterProvider
{
private static readonly Func<DateTime, string>[] formatters;
private Func<DateTime, string>[] intervalSpanFormatters;
static HourFormatterProvider()
{
formatters = new Func<DateTime, string>[]
{
date => date.ToString("yy/MM/dd HH:mm:ss")
};
}
public Func<DateTime, string>[] GetFormatters(IntervalBase interval)
{
return formatters;
}
public Func<DateTime, string>[] GetIntervalSpanFormatters(IntervalBase interval)
{
if (this.intervalSpanFormatters == null)
{
this.intervalSpanFormatters = new Func<DateTime, string>[]
{
date => String.Format("{0} - {1}", date.ToString("dddd H:mm"), interval.IncrementByCurrentInterval(date).ToString("H:mm"))
};
}
return this.intervalSpanFormatters;
}
}
我正在使用
telerik RadTimeline
并希望在
中显示时间表HourInterval.
用户可以select开始和结束日期,时间轴将以小时为单位显示间隔。
但是这个时间线的问题是它只显示小时而不显示这个小时 exist.So 的日期,用户可能会感到困惑。
如果日期能显示在时间轴的最上面一行就好了 您可以在调试模式下滚动查看此代码。
<telerik:RadTimeline x:Name="timeline"
VerticalScrollBarVisibility="Visible"
PeriodStart="1-Jan-2010 12:00:00 AM" PeriodEnd="3-Jan-2010 11:59:59 PM">
<telerik:RadTimeline.Intervals>
<telerik:HourInterval />
</telerik:RadTimeline.Intervals>
</telerik:RadTimeline>
您可以通过创建自定义 IntervalFormatterProvider 来实现此目的
<Window xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"
xmlns:formatter="clr-namespace:YouFormatterNamespace"
>
<telerik:RadTimeline x:Name="timeline"
VerticalScrollBarVisibility="Visible"
PeriodStart="1-Jan-2010 12:00:00 AM" PeriodEnd="3-Jan-2010 11:59:59 PM">
<telerik:RadTimeline.Resources>
<formatter:HourFormatterProvider x:Key="HourFormatterProvider">
</formatter:HourFormatterProvider>
</telerik:RadTimeline.Resources>
<telerik:RadTimeline.Intervals>
<telerik:HourInterval FormatterProvider="{StaticResource HourFormatterProvider}"/>
</telerik:RadTimeline.Intervals>
</telerik:RadTimeline>
</Window>
提供商示例:
public class HourFormatterProvider : IIntervalFormatterProvider
{
private static readonly Func<DateTime, string>[] formatters;
private Func<DateTime, string>[] intervalSpanFormatters;
static HourFormatterProvider()
{
formatters = new Func<DateTime, string>[]
{
date => date.ToString("yy/MM/dd HH:mm:ss")
};
}
public Func<DateTime, string>[] GetFormatters(IntervalBase interval)
{
return formatters;
}
public Func<DateTime, string>[] GetIntervalSpanFormatters(IntervalBase interval)
{
if (this.intervalSpanFormatters == null)
{
this.intervalSpanFormatters = new Func<DateTime, string>[]
{
date => String.Format("{0} - {1}", date.ToString("dddd H:mm"), interval.IncrementByCurrentInterval(date).ToString("H:mm"))
};
}
return this.intervalSpanFormatters;
}
}