在 ZedGraphWeb 中使用 Usemap

     在这个例子中,首先要引用 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)
         
           
           GraphPane myPane = masterPane[0];

           myPane.Title.Text = "水果";

           myPane.Fill 
= new Fill(Color.White, Color.Silver, 45.0f);

           myPane.Legend.Position 
= LegendPos.Float;
           myPane.Legend.Location 
= new Location(0.95f0.15f, CoordType.PaneFraction, AlignH.Right, AlignV.Top);
           myPane.Legend.FontSpec.Size 
= 20f;
           myPane.Legend.IsHStack 
= false;

           PieItem item1 
= myPane.AddPieSlice(0.20, Color.Blue, 0.0"苹果");
           item1.Link 
= new Link("Apple""blank.aspx""_blank");

           PieItem item2 
= myPane.AddPieSlice(0.10, Color.Red, 0.0"香蕉");
           item2.Link 
= new Link("Banana""blank.aspx""_blank");

           PieItem item3 
= myPane.AddPieSlice(0.40, Color.Gray, 0.0"梨子");
           item3.Link 
= new Link("Pears""blank.aspx""_blank");

           PieItem item4 
= myPane.AddPieSlice(0.30, Color.Yellow, 0.0"橘子");
           item4.Link 
= new Link("Orange""blank.aspx""_blank");

           masterPane.AxisChange(g);
         }
 

     因为是测试数据,所以全是弹出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>

 

 

     

posted @ 2008-07-21 17:09  Run.  阅读(1481)  评论(1编辑  收藏  举报