如何更改图表图例的属性

时间:2017-07-11 15:23:27

标签: c# visual-studio charts properties legend

我在调整VS2017中C#图表图例的布局方面遇到了困难。当我在Legends中转到Properties时,我可以更改多个属性,但我找不到如何更改图例边框与其项目之间的边距(因此,填充实际上)。我无法更改的另一个属性:图例项之间的间距。我找到了一些关于“样式文件”的讨论,但我想避免这种情况。我也搜索了不同的参考资料,可以给我更多的选择,但我没有找到任何东西。

那么,有没有办法更改图例的属性,而不是Properties中显示的属性?我希望找到类似的东西:“myLegend.padding = 10pt”。

1 个答案:

答案 0 :(得分:2)

您可以使用图表的CustomizeLegend事件来设置LegendLegendItems及其LegendCells的样式。

您正在寻找的Margin属于LegendCell

的属性
  

表示顶部,底部,左侧和右侧的边距对象   图例单元格边距的值。 top,bottom的默认值   左和右是" 0,0,15,15"。

     

边距以图例的字体大小的百分比来衡量   细胞

这意味着,对于正常LegendItem,其中包含两个 Cells,一个用于系列标记,另一个用于文字,您需要设置两个边距。

这是一个例子;它创建了30%的上边距,没有底边距,也为第1个,左标记单元格为400%(左)边距,第2(右)文本单元格为200%右边距。单元格之间的填充添加到文本单元格中,并且是100%..:

private void chart1_CustomizeLegend(object sender, CustomizeLegendEventArgs e)
{
    foreach (LegendItem lit in e.LegendItems)
    {
        var cells = lit.Cells;
        cells[0].Margins = new Margins(30, 0, 400, 100);
        cells[1].Margins = new Margins(30, 0, 0, 200);
    }
}

让我们看看它在行动;我在单元格中添加了两种颜色,因此您可以更好地查看各个区域:

enter image description here

以下是更新的动态代码:

cells[0].Margins = new Margins(tr_top.Value, tr_bot.Value, tr_ll.Value, tr_mm.Value);
cells[1].Margins = new Margins(tr_top.Value, tr_bot.Value, tr_mm.Value, tr_rr.Value);