动态地向面板添加形状

时间:2015-03-20 13:19:31

标签: c# asp.net image dynamic

好吧,我一直在努力解决一个具体问题。在C#的网页上,我想构建一个图表。它将由一些矩形组成(我希望矩形稍后具有额外功能,稍后它将具有箭头和其他图像)。

经过一番研究后,我发现无法从c#代码动态绘制内容到用户网页。

我能找到的所有东西告诉我制作一个位图,然后将其保存到输出流或其他东西,我做了。但是在点击按钮后它有一个奇怪的结果(它应该构建一个矩形并将其添加到面板): http://imgur.com/ddfjgAZ

代码:

   using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

//toegevoegd
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Text;
using System.Drawing.Imaging;
using System.IO;
using System.Drawing.Text;

namespace Drawing.Usercontrols
{
    public partial class WebUserControl1 : System.Web.UI.UserControl
    {

        Panel Panel1 = new Panel();
        Panel Panel2 = new Panel();

        View View1 = new View(); //how does this even work

        Bitmap objBitmap = new Bitmap(400, 440);


        protected void Page_Load(object sender, EventArgs e)
        {
            //adding a square... on  a Panel...
            Panel2.Width=500;
            Panel2.Height = 500;
            Panel2.BackColor = Color.BlueViolet; 
            this.Controls.Add(Panel2);

            //Making a graphicsobject from the bitmap
            Graphics objGraphics = Graphics.FromImage(objBitmap);

            //objGraphics.Clear(Color.Blue);
            Pen p = new Pen(Color.Yellow, 3);
            Brush x = new SolidBrush(Color.BlueViolet);

            //This piece will put up a sweet ellipse on the rectangle
            Rectangle rect = new Rectangle(200, 100, 60, 20);
            objGraphics.DrawEllipse(p, rect);

            Panel1.Controls.Add(Panel2);

            //This will add the bitmap to the page, but not really, everything on the page will dissapear and this dude will show up
            //objBitmap.Save(Response.OutputStream, ImageFormat.Jpeg);


            //This will add an image from the internet to the panel, which works
            //Panel2.Controls.Add(new System.Web.UI.WebControls.Image { ImageUrl = String.Format("http://ecx.images-amazon.com/images/I/518rMVxp3qL._SL75_SS50_.jpg") });

            // textboxes adding
            this.Controls.Add(Panel1);

            Label FeedbackLabel = new Label();
            TextBox Inputtextbox = new TextBox();
            Button Submitbutton = new Button();

            FeedbackLabel.ID = "lblFeedback";
            FeedbackLabel.Text = "Hello world";

            Submitbutton.ID = "btnSubmit";
            Submitbutton.Text = "Submit";

            Inputtextbox.ID = "txtInput";

            Submitbutton.Click += SubmitButton_Click;

            Panel1.Controls.Add(FeedbackLabel);
            Panel1.Controls.Add(Submitbutton);
            Panel1.Controls.Add(Inputtextbox);
        }

protected void SubmitButton_Click(object sender, EventArgs e)
{
    // this is the part where the black rectangle is drawn
    objBitmap.Save(Response.OutputStream, ImageFormat.Jpeg);

}


    }
}

所以我的最后一个问题是:我可以在其中构建带有形状的矩形并将它们放置在面板/布局中 (后来我想用那些矩形作为对象(向它们添加onclick事件,但我还没打扰你)

提前多多感谢!

0 个答案:

没有答案