无法通过代码清除Silverlight Charting工具包轴

时间:2011-08-06 02:34:50

标签: c# silverlight charts silverlight-toolkit

我正在尝试使用Silverlight图表(Windows Phone 7),用户可以通过更改某些设置进行修改。

清除图表轴并读取新轴后,我最终会通过 chart报告双轴.ActualAxes.Count

有谁知道如何完全清除和删除silverlight图表上的所有轴并添加新轴?我是否打算在添加?

之后调用某些内容来更新 ActualAxes 列表

提前致谢

代码示例(调用两次,你的图表最终会有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
});

2 个答案:

答案 0 :(得分:2)

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

当您清除收藏并测试ActualAxes.Count时,即使Axes现在为0,您仍会发现它仍然显示为2. ActualAxesSeriesHostAxesCollection的实例)将会不允许移除正在使用的轴是现有系列。因此ActualAxes集合保留了原件。然后,您将另外两个添加到持久性Axes集合中,以便这两个新的集合也会添加到ActualAxes,最后会有4个。

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

答案 1 :(得分:1)

以下代码应该有效

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