在asp.net中获取Graphics的click事件

时间:2011-10-03 11:34:30

标签: .net asp.net visual-studio charts

我们正在使用System.Drawing.Graphics.Drawstring在图片中撰写文字。下面的代码显示

        Bitmap bitMapImage = new System.Drawing.Bitmap(@"D:\ABC\Chart1.png");
        Graphics graphicImage = Graphics.FromImage(bitMapImage);
        //Smooth graphics is nice.
        graphicImage.SmoothingMode = SmoothingMode.AntiAlias;

        String drawString = "250";
        Font drawFont = new Font("Arial", 12,FontStyle.Bold);
        SolidBrush drawBrush = new SolidBrush(Color.White);
        PointF drawPoint= new PointF(169.0F, 85.0F); .

        graphicImage.DrawString(drawString, drawFont, drawBrush, drawPoint);

        //Set the content type
        Response.ContentType = "image/jpeg";

        //Save the new image to the response output stream.
        bitMapImage.Save(Response.OutputStream, ImageFormat.Jpeg);

        //Clean house.
        graphicImage.Dispose();
        bitMapImage.Dispose();

代码采用imagefile并写入字符串(此处:250)。现在,当用户点击250时,新窗口应该打开。

不确定如何获得250的点击事件?

请帮忙!感谢

2 个答案:

答案 0 :(得分:1)

这是ASP.NET检测到图像中绘制文本的点击是可能的,但远非理想。您应该使用div或其他html元素渲染文本,方法是将其放在图像上,然后使用javascript检测对该文本的点击。

请参阅Text Blocks Over Image

答案 1 :(得分:0)

将图像渲染到像DIV或SPAN这样的容器会更容易,并向容器添加onclick:

<div onclick="doSomething();">
    <!-- rendered image here -->
</div>

您可能还会考虑使用图像地图,如下所示:

function foo() {
 alert("Hello World!")
}

<img src="/images/someimage.png" usemap="#somemap" />
<map name="somemap">
    <area coords="0,0,82,126" onclick="foo()" nohref="true" href="#" />
</map>