【问题标题】:Chart Return Unassigned Line Colour图表返回未分配的线条颜色
【发布时间】:2019-07-29 17:06:37
【问题描述】:

问:有什么方法可以返回自动分配给系列的线条颜色,如折线图所示?

当在C# (.NET 4.6.1) 表格折线图中绘制Series 并且未使用Chart1.Series["x"].Color 将颜色明确分配给系列时,默认颜色会自动分配到某处。你如何返回这个颜色?

我在这里使用红色来区分最初的第一个系列默认颜色和我指定的颜色。橙色看看我是否有错误的财产。

我用简化的图表重构了这个问题。

我已经测试了BorderColor 属性,因为BorderWidth 是折线图的线宽,但使用Color 属性实际上是在代码中设置了不同的线条颜色。所以,我假设正确的属性是Color

如果我使用Series["x"].Color = Color.Red; 设置颜色,那么Series["x"].Color 返回红色,图表上线条的颜色也是红色。

我已经使用一个花哨的按钮将请求与创建分开,以确保在绘制图表之前发生的颜色请求不是问题。

我的假设是 Chart 将其分配到系列的属性之外,这可能是因为 Series.Colour 是 [Empty]。为什么是图表?因为自动分配的颜色蓝色、橙色等以相同的顺序出现,并按此顺序分配给系列,而与 ChartArea 无关。第一个添加的系列总是蓝色的,第二个橙色的等等。

int[] seriesData = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10  };
int[] seriesX = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 };

private void button1_Click(object sender, EventArgs e)
{

    chart1.ChartAreas.Clear();
    chart1.Series.Clear();
    chart1.ChartAreas.Add("Area1");
    //chart1.ChartAreas["Area1"].CursorX.Interval = 1;
    Series series = new Series("Data");
    chart1.Series.Add("Data");
    chart1.Series["Data"].ChartType = SeriesChartType.Line;
    chart1.Series["Data"].BorderWidth = 2;
    //chart1.Series["Data"].BorderColor = Color.Red;
    //chart1.Series["Data"].Color = Color.Orange;
    chart1.Series["Data"].Points.DataBindXY(seriesX, seriesData);
}

private void Btn_GetColour_Click(object sender, EventArgs e)
{
    MessageBox.Show("Series Colours\r\nBorder Colour: " + chart1.Series["Data"].BorderColor + "\r\nColor: " + chart1.Series["Data"].Color);
}

当未明确设置 Chart1.Series["x"].Color 并使用自动分配的颜色时,Chart1.Series["x"].Color 不会返回图表上显示的颜色。相反,它返回 [Empty]。

期待某种蓝色。

【问题讨论】:

    标签: c# forms charts colors line


    【解决方案1】:

    如果你想使用自动颜色你需要先调用Chart.ApplyPaletteColors..:

    MSDN:当图表颜色在运行时自动分配时,有 没有办法知道之前的颜色是什么 图表呈现;自动分配值的 Color 属性 此时将返回 Empty。

    如果您调用 ApplyPaletteColors 方法,则该系列的颜色 并且数据点将被设置,从而允许以编程方式访问。

    【讨论】:

    • 谢谢 TaW,这正是我所缺少的!我没有足够的用户点来提高这个响应,但希望其他人可以。干杯!
    • 如果您对答案感到满意,请考虑考虑accepting it..! - 我看到你从来没有这样做过:去左上角的(不可见的)复选标记,在答案的投票下方,然后单击它!它变成绿色并为我们俩赢得了一点声誉。..
    猜你喜欢
    • 2022-07-04
    • 2016-04-13
    • 2015-12-08
    • 1970-01-01
    • 2022-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多