使用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;
答案 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搜索中的第一个链接。