Python语言技术文档

微信小程序技术文档

php语言技术文档

jsp语言技术文档

asp语言技术文档

C#/.NET语言技术文档

html5/css技术文档

javascript

点击排行

您现在的位置:首页 > 技术文档 > C#/.NET技巧

ASPX向ASCX传值以及文本创建图片(附源码)

来源:中文源码网    浏览:199 次    日期:2024-05-01 21:49:22
【下载文档:  ASPX向ASCX传值以及文本创建图片(附源码).txt 】


ASPX向ASCX传值以及文本创建图片(附源码)
网页ASPX有一个TextBox,另一个ASCX有一个ImageButton,用户点一点这个铵钮,把用户在TextBox输入的文字创建为一个图片,ASCX的ImageButton的ImageUrl重新指向这刚产生的图片。为了传值,写一个接口,返回aspx的TextBox函数: 复制代码 代码如下: using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI.WebControls; /// /// Summary description for Itransmitable /// namespace Insus.NET { public interface Itransmitable { TextBox GetTextBoxControl(); } } 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接入页面。 复制代码 代码如下: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="A.aspx.cs" Inherits="A" %> <%@ Register src="B.ascx" tagname="B" tagprefix="uc1" %>
B.ascx: 复制代码 代码如下: <%@ Control Language="C#" AutoEventWireup="true" CodeFile="B.ascx.cs" Inherits="B" %> 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; } } 运行效果: Demo code download(.NET 4.5)

相关内容