Microsoft Silverlight 图表奇数区间
在 Silverlight 中的一个简单的 Microsoft 图表控件中,我将一个月中的日期作为 X 轴上的日期和 Y 轴上的双精度值。我想在 X 轴上每隔一天显示一次,但那些日子应该是奇数天。
如果我设置 IntervalType="Days" 和 Interval="2",则编号始终从第 2 天开始。即使我在前面或末尾或两者都放置了一个虚拟日期。
而不是: __ 02 __ 04 __ 06 __ 08 __ 10 ...
我需要: 01 __ 03 __ 05 __ 07 ...
我怎样才能以最简单的方式实现这一目标?
In a simple Microsoft chart control in Silverlight I have the days of one month as dates on the X axis and double values on the Y axis. I would like to display every second day on the X axis but those days should be the odd days.
If I set the IntervalType="Days" and Interval="2" the numbering always starts with day 2. Even if I put a dummy date in front or in the end or both.
Instead of:
__ 02 __ 04 __ 06 __ 08 __ 10 ...
I need:
01 __ 03 __ 05 __ 07 ...
How can I achieve this in the simplest way?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
集合示例
31.01 -> 1.02-> 3.02
而不是31.01 -> 2.02 。在这种情况下,唯一的方法是编写类似于
DateTimeAxis
的自定义Axis
。首先将以下文件复制到您的项目中:
使用完全相同的命名空间复制这些文件,它们是内部的,因此不会出现名称冲突。
接下来,添加
DateTimeIntervalType
的扩展类:为了使新成员
OddDays
工作,我更改了类DataTimeRangeAxis
。 这里有一个关于pastebin的链接,因为SO的程序员不注意诸如带有长解释的答案之类的小事。将命名空间
SilverlightApplication3
更改为您想要的任何名称(System.Windows.Controls.DataVisualization.Charting
除外)。另外,我对最后一个函数的代码进行了注释,因为它包含许多依赖项,并且我不想将额外的文件复制到应用程序。没有此代码,轴可以正常工作,可能根本没有使用此函数。
该类最重要的部分在函数
IncrementDateTime
中:Xaml 看起来是这样的:
您可以设置
Interval="2"
而不是 1,但它会跳过这一天在集合31.01-1.02-3.02
中,因此最好使用值 1。Example for a set
31.01 -> 1.02 -> 3.02
instead of31.01 -> 2.02
. In that case the only one way is to write the customAxis
similar to theDateTimeAxis
.At first copy to your project the following files:
Copy these files with exactly the same namespace, they are internal so there will not be a name conflict.
Next, add the extended class for
DateTimeIntervalType
:To make the new member
OddDays
work, I've changed the classDataTimeRangeAxis
. Here is a link on pastebin, because programmers of SO don't pay attention to such trifle as answers with long explanation.Change the namespace
SilverlightApplication3
to whatever your want (exceptSystem.Windows.Controls.DataVisualization.Charting
).Also I've commented the code at the last function, because it contains many dependencies and I didn't want to copy extra files to the application. The axis works fine without this code, probably this function isn't used at all.
The most important part of the class is in the function
IncrementDateTime
:Xaml will look so:
You can set
Interval="2"
instead of 1, but it will skip the day in the set31.01-1.02-3.02
, so it is better to use the value 1.