如何设置图表图例对象中的文本对齐方式?我尝试过使用:
myChartName.Legends["mySeriesName"].Alignment = stringAlignment.Near
没有效果。我还尝试创建自定义图例项目,同样没有效果。文本始终(与系列标记一起)在图例“框”中居中。我能够对齐的唯一文本是标题,但我的应用程序中不需要标题。
我迄今为止的研究表明图例对象基本上是一个带有(默认情况下)两个单元格的表格。如果是这种情况,应该有一种方法可以访问这些单元格并将它们作为表格单元格进行操作。那么,什么给出呢?为什么我无法访问图例对象的文本对齐属性?显然,我错过了一些东西,但我似乎无法弄清楚这一点。相当令人沮丧。
问题解决了。 CustomItem 方法也不起作用,因此我尝试使用 LegendCellColumn 类。
我将 LegendStyle 从“列”更改为“行”,然后添加了两个单元格列,一个用于系列符号,一个用于图例文本。设置对齐方式、边距和列宽(这就是窍门),瞧;一个看起来像我想要的传奇。这是为有类似问题的任何人提供的代码。
chartSel.Legends[ySeries.Name].CellColumns.Add(new LegendCellColumn("", LegendCellColumnType.SeriesSymbol, ""));
chartSel.Legends[ySeries.Name].CellColumns[0].Alignment = ContentAlignment.TopLeft;
chartSel.Legends[ySeries.Name].CellColumns[0].Margins = new System.Windows.Forms.DataVisualization.Charting.Margins(0, 0, 1, 1);
chartSel.Legends[ySeries.Name].CellColumns[0].MinimumWidth = 250;
chartSel.Legends[ySeries.Name].CellColumns[0].MaximumWidth = 250;
chartSel.Legends[ySeries.Name].CellColumns.Add(new LegendCellColumn("", LegendCellColumnType.Text, ySeries.Name));
chartSel.Legends[ySeries.Name].CellColumns[1].Alignment = ContentAlignment.MiddleLeft;
chartSel.Legends[ySeries.Name].CellColumns[1].Margins = new System.Windows.Forms.DataVisualization.Charting.Margins(0, 0, 1, 1);
chartSel.Legends[ySeries.Name].CellColumns[1].MinimumWidth = 1500;
chartSel.Legends[ySeries.Name].CellColumns[1].MaximumWidth = 1500;
这可能不是最有效的方法,但它确实有效。从技术上讲,图例符号和文本仍然在对象中居中,但因为我强制调整两列的宽度,所以它看起来是左对齐的。
希望这可以帮助像我这样的新手避免几天的惊愕。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)