⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 clockd.vb

📁 这是一个asp.net的自定义控件的例子 晴参考
💻 VB
字号:
Imports System.Drawing
Imports system.Drawing.Imaging
Imports System.math
Imports System.Web.UI
Imports System.Web.UI.WebControls
Namespace mxj

    <ToolboxData("<{0}:clock runat=""server"" />")> _
    Public Class Clock
        Inherits System.Web.UI.Control
        Implements INamingContainer


        Private HourTime As Integer = 12
        Private MinuteTime As Integer = 45
        Private ImageSize As Integer = 100


        Property Size() As Integer
            Get
                Return ImageSize
            End Get
            Set(ByVal value As Integer)
                ImageSize = value

            End Set
        End Property

        WriteOnly Property time() As DateTime

            Set(ByVal value As DateTime)
                HourTime = Integer.Parse(value.ToString("%H"))
                MinuteTime = Integer.Parse(value.ToString("%m"))

            End Set
        End Property
        Protected Overrides Sub Render(ByVal writer As System.Web.UI.HtmlTextWriter)
            'MyBase.Render(writer)
            Page.Response.ContentType = "image/gif"



            'If Not Page.Request.QueryString("width") Is Nothing Then
            '    ImageSize = Integer.Parse(Page.Request.QueryString("width"))
            'Else
            '    ImageSize = 100
            'End If

            'If Not Page.Request.QueryString("hour") Is Nothing Then
            '    HourTime = Integer.Parse(Page.Request.QueryString("hour"))
            'Else
            '    HourTime = 12
            'End If

            'If Not Page.Request.QueryString("minute") Is Nothing Then
            '    MinuteTime = Integer.Parse(Page.Request.QueryString("minute"))
            'Else
            '    MinuteTime = 30
            'End If




            'create canvas
            Dim ImageBitmap As New Bitmap(ImageSize, ImageSize)
            Dim imageGraphics As Graphics

            imageGraphics = Graphics.FromImage(ImageBitmap)
            imageGraphics.Clear(Color.White)

            imageGraphics.SmoothingMode = Drawing2D.SmoothingMode.AntiAlias

            'create the two-tone clock face
            Dim ClockFacePen As New Pen(Color.Black, 1)
            Dim ClockFacePen2 As New Pen(Color.LightBlue, 2)

            imageGraphics.DrawArc(ClockFacePen, 2, 2, (ImageSize - 4), (ImageSize - 4), 45.0F, 180.0F)

            imageGraphics.DrawArc(ClockFacePen2, 2, 2, (ImageSize - 4), (ImageSize - 4), 225.0F, 180.0F)

            'add some marks to help us more-accurately tell the time
            Dim marksize As Single = ImageSize / 40

            Dim count As Integer
            Dim x As Single
            Dim y As Single
            Dim Angle As Single

            For count = 1 To 12
                Angle = 30 * count * PI / 180
                'x = (ImageSize / 2) + (0.9 * (ImageSize / 2) * Sin(Angle))
                'x = (ImageSize / 2) - (0.9 * (ImageSize / 2) * Cos(Angle))

                'imageGraphics.DrawEllipse(Pens.Red, (x - (marksize / 2)), (y - (marksize / 2)), marksize, marksize)
                'Angle = 30 * count
                x = (ImageSize / 2) + Sin(Angle) * (ImageSize / 2) * 0.9
                y = (ImageSize / 2) - Cos(Angle) * (ImageSize / 2) * 0.9
                imageGraphics.DrawEllipse(Pens.Red, x, y, marksize, marksize)

            Next

            Dim CenterClockPoint As New Point(ImageSize / 2, ImageSize / 2)

            'Draw the minuteHand
            Dim minuteX As Double
            Dim minuteY As Double
            Dim minuteAngle As Double

            minuteAngle = (6 * MinuteTime) * PI / 180

            minuteX = (ImageSize / 2) + (0.9 * (ImageSize / 2) * Sin(minuteAngle))
            minuteY = (ImageSize / 2) - (0.9 * (ImageSize / 2) * Cos(minuteAngle))

            Dim MinuteHandPoint As New Point(minuteX, minuteY)
            imageGraphics.DrawLine(Pens.Black, CenterClockPoint, MinuteHandPoint)

            'Draw the hourHand

            Dim hourX As Double
            Dim hourY As Double
            Dim hourAngle As Double

            hourAngle = ((30 * (MinuteTime / 60)) + (30 * HourTime)) * PI / 180

            hourX = (ImageSize / 2) + (0.6 * (ImageSize / 2) * Sin(hourAngle))
            hourY = (ImageSize / 2) - (0.6 * (ImageSize / 2) * Cos(hourAngle))

            Dim hourHandPoint As New Point(hourX, hourY)
            imageGraphics.DrawLine(Pens.Black, CenterClockPoint, hourHandPoint)

            'output the image    
            'ImageBitmap.Save(Page.Response.OutputStream, ImageFormat.Gif)

            Dim fileNmae As String = Page.Server.MapPath("") & "\clock.gif"
            ImageBitmap.Save(fileNmae, ImageFormat.Gif)

            writer.AddAttribute("src", "clock.gif")
            writer.RenderBeginTag("img")
            writer.RenderEndTag()

        End Sub



    End Class
End Namespace

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -