我在调整VS2017中C#图表图例的布局方面遇到了困难。当我在Legends
中转到Properties
时,我可以更改多个属性,但我找不到如何更改图例边框与其项目之间的边距(因此,填充}强>实际上)。我无法更改的另一个属性:图例项之间的间距。我找到了一些关于“样式文件”的讨论,但我想避免这种情况。我也搜索了不同的参考资料,可以给我更多的选择,但我没有找到任何东西。
那么,有没有办法更改图例的属性,而不是Properties
中显示的属性?我希望找到类似的东西:“myLegend.padding = 10pt”。
答案 0 :(得分:2)
您可以使用图表的CustomizeLegend
事件来设置Legend
,LegendItems
及其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);
}
}
让我们看看它在行动;我在单元格中添加了两种颜色,因此您可以更好地查看各个区域:
以下是更新的动态代码:
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);