如何在运行时设置ChartArea的BackImage?

时间:2011-08-25 20:21:10

标签: c# asp.net charts mschart

任何人都知道为什么ChartArea.BackImage是string类型的属性? 对于这种类型的Image属性来说,它是否更有意义?

或者换句话说,如何将ChartArea的背景图像设置为在运行时生成的图像(例如从GraphicPath对象)?

欢迎提出建议,谢谢。

3 个答案:

答案 0 :(得分:5)

正如MSDN在此处所述:ChartArea.BackImage Property。 BackImage属性是一个字符串值,表示图像文件的URL。

因此,为了提供动态创建的图像,您需要创建图像(请查看以下有关使用System.Drawing命名空间中的对象来实现此目的的文章):Dynamic Image Generation with ASP.Net

你可以:

1 - 存储到文件系统。

或者

2 - 设置HttpHandler以动态提供它。

请参阅:Using HttpHandlers to serve image files

无论哪种方式,您都需要像这样设置图像的路径:

Chart.ChartAreas[0].BackImage = imagePath;

希望这有帮助。

答案 1 :(得分:3)

使用NamedImage解决方案

var chartBackImage = new Bitmap(1,1); //some bmp
chart1.Images.Add(new NamedImage("GiveSomeName", chartBackImage));
chart1.Areas[0].BackImage = Images[0].Name;
chart1.Areas[0].BackImageWrapMode = ChartImageWrapMode.Scaled; //extra

答案 2 :(得分:1)

同时设置图表和图表区域BackColor ="透明"为了显示图像

marker.addListener('click', function() {
                this.setIcon('@(Url.Content("~/content/images/Map-Marker-Blue.png"))');