10a*_*10a 1 c# charts properties legend visual-studio
我在 VS2017 中调整 C# 图表图例的布局时遇到困难。当我进入时Legends,Properties我可以更改几个属性,但我找不到如何更改图例边框与其项目之间的边距(因此,实际上是填充)。我无法更改的另一个属性:图例项之间的间距。我发现了一些关于“样式文件”的讨论,但我想避免这种情况。我还搜索了可以给我更多选择的不同参考资料,但我什么也没找到。
那么,有没有办法更改图例的属性,而不是 中显示的属性Properties?我希望找到类似的东西:“myLegend.padding = 10pt”。
您可以使用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)
| 归档时间: |
|
| 查看次数: |
2463 次 |
| 最近记录: |