Microsoft Silverlight绘制奇数间隔
在Silverlight中的一个简单的Microsoft图表控件中,我在X轴上将一个月的天数作为日期,在Y轴上将两个值作为日期。我想在X轴上每隔一天显示一次,但那些日子应该是奇数天 如果我设置IntervalType=“Days”和Interval=“2”,编号总是从第2天开始。即使我把一个虚拟的日期放在前面或最后,或两者兼而有之 而不是: __02-04-06-08-10 我需要: 01-03-05-07Microsoft Silverlight绘制奇数间隔,silverlight,microsoft-chart-controls,charts,Silverlight,Microsoft Chart Controls,Charts,在Silverlight中的一个简单的Microsoft图表控件中,我在X轴上将一个月的天数作为日期,在Y轴上将两个值作为日期。我想在X轴上每隔一天显示一次,但那些日子应该是奇数天 如果我设置IntervalType=“Days”和Interval=“2”,编号总是从第2天开始。即使我把一个虚拟的日期放在前面或最后,或两者兼而有之 而不是: __02-04-06-08-10 我需要: 01-03-05-07 如何以最简单的方式实现这一点?例如,一套31.01->1.02->3.02而不是31.0
如何以最简单的方式实现这一点?例如,一套
31.01->1.02->3.02
而不是31.01->2.02
。在这种情况下,唯一的方法是编写自定义轴
,类似于日期时间轴
首先将以下文件复制到项目中:
- c:\Program Files\Microsoft SDK\Silverlight\v4.0\Toolkit\Apr10\Source\Source code.zip\Controls.DataVisualization.Toolkit\EnumerableFunctions.cs
- c:\Program Files\Microsoft SDK\Silverlight\v4.0\Toolkit\Apr10\Source\Source code.zip\Controls.DataVisualization.Toolkit\ValueHelper.cs
DateTimeIntervalType
添加扩展类:
namespace System.Windows.Controls.DataVisualization.Charting
{
/// <summary>
/// A date time interval.
/// </summary>
public enum ExtendedDateTimeIntervalType
{
/// <summary>
/// Automatically determine interval.
/// </summary>
Auto = 0,
/// <summary>
/// Interval type is milliseconds.
/// </summary>
Milliseconds = 1,
/// <summary>
/// Interval type is seconds.
/// </summary>
Seconds = 2,
/// <summary>
/// Interval type is minutes.
/// </summary>
Minutes = 3,
/// <summary>
/// Interval type is hours.
/// </summary>
Hours = 4,
/// <summary>
/// Interval type is days.
/// </summary>
Days = 5,
/// <summary>
/// Interval type is weeks.
/// </summary>
Weeks = 6,
/// <summary>
/// Interval type is months.
/// </summary>
Months = 7,
/// <summary>
/// Interval type is years.
/// </summary>
Years = 8,
/// <summary>
/// Interval type is odd days
/// </summary>
OddDays = 9
}
}
Xaml看起来是这样的:
<charting:Chart.Axes>
<local:DateTimeAxis IntervalType="OddDays" Orientation="X" Interval="1"/>
</charting:Chart.Axes>
您可以设置
Interval=“2”
而不是1,但它会跳过集合中的一天31.01-1.02-3.02
,因此最好使用值1。您是否参考工具箱中的图表?谢谢Vortex,我将研究此解决方案,然后可能会“请求”自定义axis实现:)@Germstorm我已编辑我的答案。粘贴箱上的链接必须永久保留,这样您就可以汇集并编译所有文件。
<charting:Chart.Axes>
<local:DateTimeAxis IntervalType="OddDays" Orientation="X" Interval="1"/>
</charting:Chart.Axes>