做可视化WebControl的,请进!!!
偶正在做一个关于界面的可视化WebControl,用于显示一个界面,原理是先设置一个控件大小的Bitmap,然后再Bitmap上画,画完后输出,代码如下:
<DefaultProperty("Value"), ToolboxData("<{0}:Annunciator runat=server></{0}:Annunciator>")> Public Class Annunciator
Inherits System.Web.UI.WebControls.WebControl : Implements INamingContainer
Private Sub OutputImage()
Dim m_Image As New Bitmap(100, 100)
Dim g As Graphics
g = Graphics.FromImage(m_Image)
g.SmoothingMode = Drawing2D.SmoothingMode.AntiAlias
g.Clear(Color.Silver)
'draw
context.Response.Clear()
context.Response.ContentType = "image/Gif"
m_Image.Save(context.Response.OutputStream, ImageFormat.Gif)
m_Image.Dispose()
g.Dispose()
End Sub
Protected Overrides Sub Render(ByVal writer As System.Web.UI.HtmlTextWriter)
OutputImage()
End Sub
End Class
终于可以输出了,但又出现新的问题,关键在于context.Response.Clear()这一句,如果加上这句,在同一页面的其他控件全部都不显示了,去掉则自己的控件输出为一堆乱码,不知怎么回事?
另外,如何在设计时也能实现界面的可视,象Image控件一样,而不是一个MyControl:MyControl1的显示