不能通过代码清除Silverlight chart工具箱轴

本文关键字:chart 工具箱 Silverlight 清除 代码 不能 | 更新日期: 2023-09-27 18:04:35

我正在尝试有一个Silverlight图表(windows phone 7),用户可以通过更改一些设置来修改。

在清除图表轴并读取新轴后,结果是chart.ActualAxes.Count

报告了双轴。

有人知道如何完全清除和删除silverlight图表上的所有轴并添加新的轴吗?我是不是要调用一些东西来更新ActualAxes列表后添加?

thanks in advance

代码示例(调用此代码两次,您的图表将以4轴而不是2轴结束):

chart.Axes.Clear();
chart.Axes.Add(new LinearAxis()
{
    Orientation = AxisOrientation.Y,
    Location = AxisLocation.Left,
    Minimum = 0
});
chart.Axes.Add(new DateTimeAxis()
{
    Orientation = AxisOrientation.X,
    Location = AxisLocation.Bottom,
    IntervalType = DateTimeIntervalType.Days
});

不能通过代码清除Silverlight chart工具箱轴

Chart Axes集合表示即使图表中没有序列也要呈现的图表中的persistentAxes。ActualAxes表示持久轴和图表中系列使用的轴的组合。

当你清除集合并测试ActualAxes.Count时,你会发现它仍然说2,即使Axes现在是0。ActualAxes (SeriesHostAxesCollection的一个实例)将不允许删除正在使用的现有系列的轴。因此,ActualAxes系列保留了原始版本。然后将另外2个添加到持久的Axes集合中,因此这2个新集合也添加到ActualAxes中,最终得到4个。

再次运行代码(第三次),您应该看到ActualAxes计数仍然是4。这是因为你在第二个调用中添加的2轴没有被任何系列使用,所以它们可以从ActualAxes集合中删除。

下面的代码应该可以工作

var xAxis = chart_name.ActualAxes.OfType<LinearAxis>().FirstOrDefault(ax => ax.Orientation == AxisOrientation.X);
if (xAxis != null) 
{
   xAxis.Title = "The Title";
}