我想让显示的文字“项目1的提示,休息时间,测试数据 等”与柱状图的底部对齐显示。请问是哪一个属性设置呢。
我用如下这些代码的属性设置都不管用。
item.CustomProperties = "LabelStyle=Bottom";
MainTJChart.Series[0].Points[1].LabelAlignment = StringAlignment.Far;
MainTJChart.Series[0].Points[1].LabelStyle = LabelStyle.Bottom;
MainTJChart.Series[0].Points[1].CustomProperties = "LabelStyle=Bottom";
源代码如下。
using System.Windows.Forms.DataVisualization.Charting;
//程序集 System.Windows.Forms.DataVisualization.dll, v4.0.30319
/// <summary>
/// 生成柱状图,将图片绑定到Image.Source上。
/// </summary>
/// <param name="image"></param>
/// <param name="speedList"></param>
/// <returns></returns>
public static void InitChartImgScC(System.Windows.Controls.Image image)
{
// 生成报表的代码
Chart MainTJChart = new Chart() { Width = 570, Height = 350 };
MainTJChart.ChartAreas.Clear();
MainTJChart.ChartAreas.Add(new ChartArea("C1"));
MainTJChart.Series.Clear();
MainTJChart.Series.Add(new Series("S1") { ChartArea = "C1" });
//设置图标显示样式
foreach (var item in MainTJChart.ChartAreas)
{
item.CursorX.AutoScroll = true;
item.AxisX.ScaleView.Zoomable = false;
item.AxisX.MajorGrid.Enabled = false;//图表内的线
item.AxisX.Enabled = AxisEnabled.False; //图标的刻度开关
item.AxisY.Interval = 0;
item.AxisX.IsMarginVisible = false; //设置IsMarginVisible为false
item.AxisY.MajorGrid.Enabled = false;//图表内的线
item.AxisY.Enabled = AxisEnabled.False;//图标的刻度开关
}
MainTJChart.Series[0].ChartType = SeriesChartType.RangeColumn;
MainTJChart.Series[0]["PixelPointWidth"] = "35"; // 设置柱状宽度
MainTJChart.Series[0]["PointWidth"] = "5"; // 设置柱状之间的距离间隙
//添加数据
MainTJChart.Series[0].Points.AddXY("项目1", 200);
MainTJChart.Series[0].Points.AddXY("项目2", 140);
MainTJChart.Series[0].Points.AddXY("项目3", 150);
MainTJChart.Series[0].Points.AddXY("项目4", 10);
MainTJChart.Series[0].Points.AddXY("项目5", 90);
MainTJChart.Series[0].Points.AddXY("项目6", 100);
MainTJChart.Series[0].Points.AddXY("项目7", 150);
MainTJChart.Series[0].Points[0].Label = "项\n目\n1\n的\n提\n示";
MainTJChart.Series[0].Points[1].Label = "休\n息\n时\n间";
MainTJChart.Series[0].Points[2].Label = "测\n试\n数\n据";
MainTJChart.Series[0].Points[3].Label = "数\n据\n格\n式";
MainTJChart.Series[0].Points[4].Label = "显\n息\n时\n间";
MainTJChart.Series[0].Points[5].Label = "息\n时\n间";
MainTJChart.Series[0].Points[6].Label = "你\n好\n时\n间";
//设置数据格式
foreach (var item in MainTJChart.Series[0].Points)
{
//item.CustomProperties = "LabelStyle=Bottom";
item.Color = System.Drawing.Color.FromArgb(0xFF, 0xCC, 0x00);
item.Font = new Font("Arial", 11);
}
//生成图片并绑定到Image
Bitmap bitmap = null;
IntPtr intPtr = new IntPtr();
try
{
bitmap = new Bitmap(MainTJChart.Width, MainTJChart.Height);
MainTJChart.DrawToBitmap(bitmap, new Rectangle(0, 0, MainTJChart.Width, MainTJChart.Height));
intPtr = bitmap.GetHbitmap();
image.Stretch = Stretch.Uniform;
image.Source = Imaging.CreateBitmapSourceFromHBitmap(intPtr, IntPtr.Zero, Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions());
}
finally
{
if (bitmap != null) { bitmap.Dispose(); }
if (intPtr != IntPtr.Zero) { DeleteObject(intPtr); }
}
}
然后显示的效果如下图