在这个例子中,首先要引用 zedgraph.dll 和 zedgraph.web.dll 文件,然后在根目录下创建文件夹 ZedGraphImages,用于存放临时图像文件。现在开工了。。。
前台添加ZedGraphWeb 控件:
<%@ Register Assembly="ZedGraph.Web" Namespace="ZedGraph.Web" TagPrefix="ZGW" %>
<ZGW:ZedGraphWeb ID="ucZGW" RenderMode="ImageTag" IsImageMap="true" runat="server">
</ZGW:ZedGraphWeb>
IsImageMap 设为 true :为了可以实现 Usemap 。
RenderMode.RawImage :优点是不需要文件缓存,但缺点是每个图形必须有它自己的aspx页,是与你所显示的网页分开的。
RenderMode.ImageTag :不需要为每一个单独图形建立一个独立的网页。缺点则是需要一个缓存目录,存储临时文件。
后台:
this.ucZGW.RenderGraph += new ZedGraphWebControlEventHandler(this.OnRenderGraph);
为控件添加画图事件。
private void OnRenderGraph(ZedGraphWeb zgw, Graphics g, MasterPane masterPane)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
{
GraphPane myPane = masterPane[0];
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
myPane.Title.Text = "水果";
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
myPane.Fill = new Fill(Color.White, Color.Silver, 45.0f);
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
myPane.Legend.Position = LegendPos.Float;
myPane.Legend.Location = new Location(0.95f, 0.15f, CoordType.PaneFraction, AlignH.Right, AlignV.Top);
myPane.Legend.FontSpec.Size = 20f;
myPane.Legend.IsHStack = false;
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
PieItem item1 = myPane.AddPieSlice(0.20, Color.Blue, 0.0, "苹果");
item1.Link = new Link("Apple", "blank.aspx", "_blank");
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
PieItem item2 = myPane.AddPieSlice(0.10, Color.Red, 0.0, "香蕉");
item2.Link = new Link("Banana", "blank.aspx", "_blank");
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
PieItem item3 = myPane.AddPieSlice(0.40, Color.Gray, 0.0, "梨子");
item3.Link = new Link("Pears", "blank.aspx", "_blank");
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
PieItem item4 = myPane.AddPieSlice(0.30, Color.Yellow, 0.0, "橘子");
item4.Link = new Link("Orange", "blank.aspx", "_blank");
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
masterPane.AxisChange(g);
}
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
因为是测试数据,所以全是弹出blank.aspx页面,没有带参数。如果是跳转,可将"_blank" 改为 "_self"。如果需要对整个图像区域实现Usemap, 则添加:
BoxObj box = new BoxObj(0, 0, 1, 1, Color.Empty, Color.Empty);
box.Location.CoordinateFrame = CoordType.ChartFraction;
box.Link = new Link("Fruit", "blank.aspx", "_blank");
myPane.GraphObjList.Add(box);
页面效果:
前台生成html代码:
<img width="400" height="250" src="/WebSiteZedgraphDemo/ZedGraphImages/ucZGW742140f7-693f-4fcd-bb04-2c61eff0270b.png?20080721090519"
alt="" border="0" usemap="#ucZGW742140f7-693f-4fcd-bb04-2c61eff0270b.png.map" />
<map
name="ucZGW742140f7-693f-4fcd-bb04-2c61eff0270b.png.map">
<area shape="rect" coords="7,26,393,243" href="_blank.aspx" target="_blank" title="Chart Region" />
<area shape="poly" coords="200,135,290,135,289,142,288,150,287,157,285,164,282,171,278,178,275,184,270,190,265,196,260,201,254,206,248,210,241,214,235,217,228,220"
href="_blank.aspx" target="_blank" title="Apple" />
<area shape="poly" coords="200,135,228,220,221,222,214,223,207,224,200,224,193,224,186,223,179,222,172,220"
href="_blank.aspx" target="_blank" title="Blana" />
<area shape="poly" coords="200,135,172,220,165,217,158,214,151,210,145,205,139,200,134,195,129,189,124,182,120,176,117,169,115,161,113,154,111,146,111,139,111,131,111,123,113,115,115,108,117,101,120,94,124,87,129,80,134,75,139,69,145,64,151,59,158,56,165,52,172,50"
href="_blank.aspx" target="_blank" title="Lizi" />
<area shape="poly" coords="200,135,172,50,180,47,187,46,195,45,203,45,210,46,218,47,225,49,232,51,239,54,246,58,253,62,259,67,264,72,269,78,274,84,278,91,281,97,284,105,287,112,288,119,289,127,290,135"
href="_blank.aspx" target="_blank" title="Orange" />
</map>