我正在尝试让我的情节改变它的间隔类型,具体取决于缩放级别,但我不知道如何实现这一点。我正在使用DateTimeAxis
并希望它能在Days开始。然后缩小将从几天变为几个月,最后变为几年。放大将从几天变为几小时,如果这种行为甚至可能是几秒钟。
目前我的轴设置如下:
public DateTimeAxis HorizontalAxis
{
get
{
return new DateTimeAxis
{
Position = AxisPosition.Bottom,
Minimum = DateTimeAxis.ToDouble(Start),
Maximum = DateTimeAxis.ToDouble(End),
MajorStep = double.NaN,
MinimumMajorStep = 0,
MinorStep = double.NaN,
MinimumMinorStep = 0,
AbsoluteMinimum = DateTimeAxis.ToDouble(Start),
AbsoluteMaximum = DateTimeAxis.ToDouble(End),
MinorIntervalType = DateTimeIntervalType.Hours,
IntervalType = DateTimeIntervalType.Days,
Title = " Date Time Axis Title "
};
}
}
public LinearAxis VerticalAxis
{
get
{
return new LinearAxis
{
Position = AxisPosition.Left,
Minimum = SetPoint - 4,
Maximum = SetPoint + 4,
MajorStep = double.NaN,
MinimumMajorStep = 0,
MinorStep = 0.5,
MinimumMinorStep = 0,
AbsoluteMinimum = SetPoint - 4,
AbsoluteMaximum = SetPoint + 4,
MinorTickSize = 0,
Title = " Linear Axis Title "
};
}
}
如果这种行为无法实现,我还会问,从几天开始放大时,是否有办法让时间显示出来。在制作默认情节时,这就是我看到的行为。
谢谢!
答案 0 :(得分:0)
我知道我刚刚发布了这个问题,但也许还有其他人对这种行为感兴趣。
要动态更改轴我使用了描述Here
的AxisChanged事件从那里我创建了一个输出消息,以查看轴中的属性发生了变化。我发现Scale
,Minor Step Size
和Major Step Size
是缩放时的变化。实现一个简单的if语句来检查规模我能够得到我想要的行为。
private async void Horizontal_AxisChanged(object sender, AxisChangedEventArgs e)
{
DateTimeAxis horizontal = sender as DateTimeAxis;
if(horizontal.Scale > 100)
{
horizontal.IntervalType = DateTimeIntervalType.Hours;
}
else if(horizontal.Scale < 100)
{
horizontal.IntervalType = DateTimeIntervalType.Days;
}
}