ASP.NET初识3

1、用户控件
  以ascx作为拓展名,派生自System.Web.UI.UserControl类
  以<% @Control %>指令开始
  不能直接请求ascx文件,用户控件文件必须宿主到ASP.NET Web页面中
  用户控件中没有html、body或form元素
2、使用用户控件
  <%@ Register Src="~/Registration.ascx" TagName="Registration" TagPrefix="uc1" %>
  TagPrefix:指定与用户控件关联的命名空间
  TagName:指定在ASP.NET Web页面中使用的用户控件的名字,可以指定任何字符串
  Src:指定用户控件的虚拟路径
  VS默认生成的TagPrefix以uc开头,TagName则直接使用用户控件的文件名
3、在web.config中注册用户控件(用户控件不能与宿主控件的Web页面位于同一个文件夹下)
  <configuration>
    <system.web>
      <pages>
        <controls>
          <add tagPrefix="myUserControl" tagName="registration" src="~/UserControl/Registration.ascx" />
        </controls>
      </pages>
    </system.web>
  </configuration>
  使用时:用如下代码声明用户控件
  <myUserControl:registration ID="regcontrol" runat="server" />
4、动态加载用户控件
  实现步骤:
    在Page.Load事件中加载用户控件,以便于用户控件能够恢复状态且postback事件
    使用容器控件和PlaceHolder控件来宿主用户控件,使用户控件能够显示在正确的位置
    当需要调用Page.FindControl方法查找用户控件时,可以为用户控件指定一个ID值属性以便于获取对用户控件的调用
    加载用户控件的方法是Page.LoadControl
5、调用自定义属性和事件,需要对用户控件进行类型转换
  转换之前,在页面声明区使用<%@Reference   %>语法来引用用户控件
6、动态绘图(GDI+绘图)
  基本步骤
  1、在内存中创建一个Bitmap位图对象,所有的绘图将在该位图上操作
  2、为上一步创建的Bitmap对象创建一个Graphics上下文对象,以便于使用System.Drawing.Graphics的属性和方法
  3、使用Graphics对象的方法来完成绘图,可以绘制图形、填充图像或者是从一个已经存在的文件中复制图像
  4、调用Response.OutputStream将图像数据以二进制格式写入浏览器
7、基本绘图
  System.Drawing:该命名空间中定义了许多基本绘图元素,包括Pens、Brushes和Bitmaps
  System.Drawing2D:该命名空间提供高级的二维和矢量图形功能,比如GraphicsPath类
  System.Drawing.Imageing:命名空间提供高级GDI+图形处理功能,包括ImageFormat类
  System.Drawing.Text:该命名空间提供了高级的GDI+排版功能,比如文字排列方式
8、无缩放的图像绘制
9、输出PNG格式图像时,要先将PNG格式的图片保存到MemoryStream(可来回定位的流)流中  
    Response.ContentType = "image/png";
        MemoryStream msm = new MemoryStream();
        thumbnailImage.Save(msm, System.Drawing.Imaging.ImageFormat.Png);
        msm.WriteTo(Response.OutputStream);
        thumbnailImage.Dispose();
        msm.Dispose();
10、速度和质量之间的优化
  Graphics对象有一个SmoothingMode的枚举属性







posted @ 2011-06-21 23:56  常伟华  阅读(198)  评论(0编辑  收藏  举报