如何更改图表图例的属性

10a*_*10a 1 c# charts properties legend visual-studio

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

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

TaW*_*TaW 5

您可以使用CustomizeLegend图表的事件来设置Legend、其LegendItems和他们的LegendCells

您正在寻找的保证金LegendCell

一个 Margins 对象,表示图例单元格边距的顶部、底部、左侧和右侧值。顶部、底部、左侧和右侧的默认值为“0,0,15,15”。

边距以图例单元格字体大小百分比来衡量

这意味着对于LegendItem两个 组成的普通,Cells一个用于系列标记,一个用于文本,您需要设置两个边距。

这是一个例子;它创建了一个 30% 的顶部边距,没有底部边距,对于第一个,左侧标记单元格一个 400%(左)边距,对于第二个(右)文本单元格一个 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);
    }
}
Run Code Online (Sandbox Code Playgroud)

让我们看看它的实际效果;我在单元格中添加了两种颜色,以便您可以更好地看到各自的区域:

在此处输入图片说明

这是更新的动态代码:

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);
Run Code Online (Sandbox Code Playgroud)