如何手动定位ASP.Net Chart Legend?

时间:2013-10-09 18:05:40

标签: c# asp.net charts legend

使用ASP.Net中内置的Chart控件,我试图手动定位Title和Legend,使它们在ChartArea上方水平直接相邻。我已经能够使用以下代码手动定位标题:

chart.Titles["Title1"].Position.Auto = false;
chart.Titles["Title1"].Position.X = 10;
chart.Titles["Title1"].Position.Y = 5;

真的,没什么可说的。但是,我试图使用以下代码将Legend置于其右侧,并且甚至不显示Legend:

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

任何想法我做错了什么?这似乎应该相对简单。我甚至尝试了各种其他坐标,我无法让Legend出现在任何地方。如果我使用如下所示的内置定位,它会出现,但这种定位不适合我的目的:

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

2 个答案:

答案 0 :(得分:11)

尝试新建一个ElementPosition对象,如下所示:

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

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

答案 1 :(得分:2)

我偶然发现了这个问题,看看如何在图表的底部移动图例。

答案是使用Docking属性

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

将来可能会有所帮助,因为这是Google搜索中的第一个链接。