如何手动定位ASP.Net图表图例?

7
使用内置在ASP.Net中的图表控件,我正在尝试手动定位标题和图例,使它们水平地直接位于图表区域上方。我已经能够使用以下代码手动定位标题:
chart.Titles["Title1"].Position.Auto = false;
chart.Titles["Title1"].Position.X = 10;
chart.Titles["Title1"].Position.Y = 5;

其实没什么难的。不过,我试图用以下代码将图例放在右侧,但是图例甚至都没有出现:

chart.Legends["Legend1"].Position.Auto = false;
chart.Legends["Legend1"].Position.X = 30;
chart.Legends["Legend1"].Position.Y = 5;

有任何想法我做错了什么吗?这似乎应该是相对简单的。我甚至尝试了各种其他坐标,但无论如何我都无法使图例出现在任何位置。如果我使用以下内置的定位,它确实会出现,但这种定位不适合我的目的:

chart.Legends["Legend1"].Docking = Docking.Top;
chart.Legends["Legend1"].DockedToChartArea = "ChartArea1";
chart.Legends["Legend1"].IsDockedInsideChartArea = false;
chart.Legends["Legend1"].Alignment = StringAlignment.Far;
2个回答

12

尝试创建一个新的ElementPosition对象,像这样:

chart.Legends["Legend1"].Position.Auto = false;
chart.Legends["Legend1"].Position = new ElementPosition(30, 5, 100, 20);

注意:构造函数ElementPosition需要0个或4个参数(x,y,width,height)。


成功了!非常感谢。实际上看起来缺少设置 Legend.Position.WidthLegend.Position.Height 是问题所在。只需添加它们即可让我的代码正常工作。不过我更喜欢您的一行 new 方法,所以我将使用它代替。 - jokeefe

7

我在查找如何将图例移动到图表底部时遇到了这个问题。

解决方法是使用 Docking 属性。

Chart1.Legends["Legend1"].Docking = Docking.Bottom;

这可能对未来的某个人有所帮助,因为这是谷歌搜索结果中的第一个链接。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接