圣殿祭司 时钟范例

二J 2009-08-19 06:13:17
页面老是闪
...全文
89 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
二J 2009-08-19
  • 打赏
  • 举报
回复
你看看是不是ImageHandler.ashx文件有问题。。。
二J 2009-08-19
  • 打赏
  • 举报
回复
状态栏里总有正在下载图片。。。。。每秒闪动一次
二J 2009-08-19
  • 打赏
  • 举报
回复
好象没什么用呀,还是闪,
wuyq11 2009-08-19
  • 打赏
  • 举报
回复
延长 System.Threading.Thread.Sleep(100);
每秒图片都要变化的。
二J 2009-08-19
  • 打赏
  • 举报
回复
只有imagetime控件有用的,其他我是用来测试的。
二J 2009-08-19
  • 打赏
  • 举报
回复
主要是imagetime 控件的闪动,你那样没什么用。把imagetime拿到外面肯定更要闪了。我放在updatepale 用AJAX都要闪,真想不通。
wuyq11 2009-08-19
  • 打赏
  • 举报
回复
<img src="" id="imagetime" runat="server" alt="" visible="false"/>
<asp:Timer ID="Timer1" runat="server" Interval="1000" OnTick="Timer1_Tick">
</asp:Timer> 试试
二J 2009-08-19
  • 打赏
  • 举报
回复
指点,指点
二J 2009-08-19
  • 打赏
  • 举报
回复
好的,
.aspx

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

<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>

</div>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<img src="" id="imagetime" runat="server" alt="" visible="false"/>
<asp:Label ID="cc" runat="server" Text="Label"></asp:Label>

</ContentTemplate>

<Triggers>
<asp:AsyncPostBackTrigger ControlID="Timer1" EventName="Tick" />
</Triggers>



</asp:UpdatePanel>


<asp:Timer ID="Timer1" runat="server" Interval="1000" OnTick="Timer1_Tick">
</asp:Timer>
<asp:Image ID="Image1" runat="server" ImageUrl="~/upload/clod.gif" />


</form>


.cs

public partial class aa : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{

}

protected void Timer1_Tick(object sender, EventArgs e)
{
imagetime.Visible = true;
imagetime.Src = "ImageHandler.ashx";
Label dd = (Label)UpdatePanel1.FindControl("cc");
dd.Text = "时间是:"+DateTime.Now.ToLongTimeString();
System.Threading.Thread.Sleep(100);
int green = new Random().Next(255);
System.Threading.Thread.Sleep(100);
int red = new Random().Next(255);
int blue = new Random().Next(255);
dd.BackColor = Color.FromArgb(green,red,blue);
dd.ForeColor = Color.FromArgb(red,blue,green);
}
}
ImageHandler.ashx



<%@ WebHandler Language="C#" Class="ImageHandler" %>

using System;
using System.Web;
using System.IO;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Drawing.Imaging;

public class ImageHandler : IHttpHandler {

public void ProcessRequest (HttpContext context)
{
Bitmap imagetime = new Bitmap(500, 100);

//从Bitmap取得Image
Graphics g = Graphics.FromImage(imagetime);

//将Bitmap背景色填满LightPink颜色
SolidBrush colorPen = new SolidBrush(Color.White);
g.FillRectangle(colorPen, 0, 0, 500,100);

//定义画笔及样式
//取得HatchStyle列举类型的所有成员
Array obj = Enum.GetValues(typeof(HatchStyle));
// int valueStyle = new Random().Next(obj.Length);
int valueStyle =10;
HatchStyle brushStyle = (HatchStyle)obj.GetValue(valueStyle);
HatchBrush theBrush = new HatchBrush(brushStyle, Color.White, Color.Black);

//在Bitmap上绘制GDI+时间字体
g.DrawString(DateTime.Now.ToLongTimeString(), new Font("Arial Black", 48), theBrush, 0, 0);

//建立MemoryStream
MemoryStream ms = new MemoryStream();
//将BitMap存入MemoryStream
imagetime.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp);
//新建二进位的Byte数组
byte[] buffer = new byte[ms.Length];
ms.Seek(0, SeekOrigin.Begin);
//将数据写入到buffer之中
ms.Read(buffer, 0, (int)ms.Length);
ms.Close();
//将buffer输出成数据流
context.Response.OutputStream.Write(buffer, 0, buffer.Length);
//关闭数据流
context.Response.OutputStream.Close();

buffer = null;
imagetime.Dispose();
g.Dispose();



}

public bool IsReusable
{
get
{
return false;
}
}

}
wuyq11 2009-08-19
  • 打赏
  • 举报
回复
代码贴出看看
二J 2009-08-19
  • 打赏
  • 举报
回复
就是画一个显示时间的图片,而且很小的
二J 2009-08-19
  • 打赏
  • 举报
回复
没呀,就是画一张图片而已呀
杨哥儿 2009-08-19
  • 打赏
  • 举报
回复
你重绘的地方太多

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧