Silverlight图表问题

时间:2010-11-11 13:26:48

标签: silverlight silverlight-4.0 charts

我没有足够的重复点来发布图像但是使用ColumnSeries给出了Silverlight 4图表示例,如何在单个列中创建当前堆叠在彼此顶部的每个子列旁边?

例如,列NVQ2显示5个不同位置的值列,列NVQ3显示5个不同位置的值列

我需要将这些位置并排放置,而不是叠在一起。

图表代码:

foreach (ER_Location theLocation in UserSelections.TheDataSet.ER_Locations)
                    {
                        ER_Year myYear = (ER_Year)SeriesSelection.SelectedItem;
                        ColumnSeries newSeries = new ColumnSeries();
                        newSeries.ItemsSource = UserSelections.GetDataRowsByYearAndLocation(theLocation.Location_ID, (int)myYear.Year);
                        newSeries.IndependentValueBinding = new System.Windows.Data.Binding("Variable_ID");
                        newSeries.DependentValueBinding = new System.Windows.Data.Binding("Value");
                        newSeries.Title = theLocation.Name;
                        newSeries.IsSelectionEnabled = true;
                        MainChart.Series.Add(newSeries);
                    }

更新

这就是图表目前的呈现方式: alt text

2 个答案:

答案 0 :(得分:1)

我的猜测是你的代码有以下using声明: -

using System.Windows.Controls.DataVisualization.Charting.Compatible

实际上有两种名称为ColumnSeries的不同类型。一个在上面的命名空间中,它派生自StackedColumnSeries

但是原始的非堆叠ColumnSeries存在于主Charting名称空间中。此类型将并排放置每列。因此,我怀疑您需要做的就是从.Compatible消除额外的using: -

using System.Windows.Controls.DataVisualization.Charting;

答案 1 :(得分:1)

您必须使用color属性创建一个类。

实施例,

public class MyColor
{
    public Brush ChartColor { get; set; }
}

然后创建您喜欢的颜色列表,如

List<MyColor> colorList = new List<MyColor>
{
    new MyColor
      { ChartColor = new SolidColorBrush(Colors.Blue)},
    new MyColor
      { ChartColor = new SolidColorBrush(Colors.Green) },
    ...
    ...
}

从Xaml,将数据点的背景颜色绑定到ChartColor