文本创建图片,ASPX向ASCX传值

网页ASPX有一个TextBox,另一个ASCX有一个ImageButton,用户点一点这个铵钮,把用户在TextBox输入的文字创建为一个图片,ASCX的ImageButton的ImageUrl重新指向这刚产生的图片。

 

为了传值,写一个接口,返回aspx的TextBox函数:

文本创建图片,ASPX向ASCX传值 Itransmitable
using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI.WebControls;



/// <summary>

/// Summary description for Itransmitable

/// </summary>

namespace Insus.NET

{

    public interface Itransmitable

    {

        TextBox GetTextBoxControl();

    }

}


A.asp.cs,并实现接口。

文本创建图片,ASPX向ASCX传值 A.aspx.cs
using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.HtmlControls;

using System.Web.UI.WebControls;

using Insus.NET;



public partial class A : System.Web.UI.Page,Itransmitable 

{

    protected void Page_Load(object sender, EventArgs e)

    {

        

    }



    public TextBox GetTextBoxControl()

    {

        return this.tbHid;

    }

}


A.aspx,把用户控件B.ascx接入页面。

文本创建图片,ASPX向ASCX传值 A.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="A.aspx.cs" Inherits="A" %>



<%@ Register src="B.ascx" tagname="B" tagprefix="uc1" %>



<!DOCTYPE html>



<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">

    <title></title>



</head>

<body>

    <form id="form1" runat="server">

        <div>

            <asp:TextBox ID="tbHid" runat="server" />

           

            <uc1:B ID="B1" runat="server" />

           

        </div>

    </form>

</body>

</html>


B.ascx:

文本创建图片,ASPX向ASCX传值 View Code
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="B.ascx.cs" Inherits="B" %>

 <asp:ImageButton runat="server" ID="imgBmp" OnClick="imgBmp_Click" BorderWidth="1" />


B.ascx.cs:

文本创建图片,ASPX向ASCX传值 B.ascx.cs
using System;

using System.Collections.Generic;

using System.Drawing;

using System.Drawing.Drawing2D;

using System.Drawing.Imaging;

using System.Drawing.Text;

using System.IO;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

using Insus.NET;



public partial class B : System.Web.UI.UserControl

{

   

    protected void Page_Load(object sender, EventArgs e)

    {

        this.imgBmp.ImageUrl = GetImagePath("Insus.NET");  //默认值。

    }

    protected void imgBmp_Click(object sender, ImageClickEventArgs e)

    {

       Itransmitable textbox = (Itransmitable)this.Page; //把page转换为接口。



       this.imgBmp.ImageUrl = GetImagePath(textbox.GetTextBoxControl().Text.Trim());

    }





    //创建图片

    private string GetImagePath(string _text)

    {

        Bitmap bitmap = new Bitmap(1, 1);

        Font font = new Font("Arial", 25, FontStyle.Regular, GraphicsUnit.Pixel);

        Graphics graphics = Graphics.FromImage(bitmap);

        int width = (int)graphics.MeasureString(_text, font).Width;

        int height = (int)graphics.MeasureString(_text, font).Height;

        bitmap = new Bitmap(bitmap, new Size(width, height));

        graphics = Graphics.FromImage(bitmap);

        graphics.Clear(Color.White);

        graphics.SmoothingMode = SmoothingMode.AntiAlias;

        graphics.TextRenderingHint = TextRenderingHint.AntiAlias;

        graphics.DrawString(_text, font, new SolidBrush(Color.FromArgb(0, 0, 0)), 0, 0);

        graphics.Flush();

        graphics.Dispose();

        string fileName = Path.GetFileNameWithoutExtension(Path.GetRandomFileName()) + ".jpg";

        bitmap.Save(Server.MapPath("~/ImageLib/") + fileName, ImageFormat.Jpeg);

        return "~/ImageLib/" + fileName;

    }

}


运行效果:

 文本创建图片,ASPX向ASCX传值

 

Demo code download(.NET 4.5) :
http://download.cnblogs.com/insus/ASPDOTNET/aspx2ascx.rar

 

你可能感兴趣的:(asp)