我希望在Microsoft WinForms图表控件中产生这种TitleBox,以便将titlebox停靠在图表区域的顶部。
有没有办法像这样将标准标题框放置在图表区域的顶部,还是可以将这样的文本框添加到图表控件中?
选择1:你可以添加Label
到Chart
这样的:
int lh = (int)(label1.Height / chart1.Height * 100f);
int cw = chart1.Width;
ChartArea CA = chart1.ChartAreas[0];
ElementPosition EP = CA.InnerPlotPosition;
CA.InnerPlotPosition = new ElementPosition(EP.X, EP.Y + lh, EP.Width, EP.Height - lh);
label1.Location = new Point((int)(EP.X * cw / 100f) + 10, 0);
label1.Width = (int)(EP.Width * cw / 100f) - 20;
label1.Height -= 2;
label1.Parent = chart1;
或者,您可能想通过将标签停靠在顶部来放置标签。
您可以Label
根据自己的喜好设置样式,甚至添加Image
..
您可能需要使用标签的偏移量。
选项2:您可以通过以下方式来移动标题框:
chart1.Titles.Add("TiltelBox");
Title T = chart1.Titles[0];
ChartArea CA = chart1.ChartAreas[0];
T.DockedToChartArea = CA.Name;
T.BackColor = Color.Wheat;
T.Docking = Docking.Top;
T.IsDockedInsideChartArea = true;
ElementPosition EP = T.Position;
T.Position = new ElementPosition
(EP.X + 10f, EP.Y -0.5f, EP.Width + 83.5f, EP.Height + 9f);
再说一遍:您将需要按照定位标题的方式进行操作。上面的那些碰巧在这里可以工作,但是您需要随图表更改它们。
请记住,ElementPosition使用图表大小的1/100作为单位;这很好,因为它可以扩展,但是一开始很难设置。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句