Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Microsoft Silverlight绘制奇数间隔_Silverlight_Microsoft Chart Controls_Charts - Fatal编程技术网

Microsoft Silverlight绘制奇数间隔

Microsoft 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

在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.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>