倒计时控件
2018-06-17 20:01:37来源:未知 阅读 ()
最近做一个WPF小项目需要使用到计时器,因此写了一个计时控件,记录下来,以便下次使用。
前台的XAML:
<UserControl x:Class="Test.CountDown" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" mc:Ignorable="d" d:DesignHeight="110" d:DesignWidth="150"> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="43*" /> <ColumnDefinition Width="13"/> <ColumnDefinition Width="43*" /> <ColumnDefinition Width="13"/> <ColumnDefinition Width="43*" /> </Grid.ColumnDefinitions> <TextBlock Text="00" Name="HourArea" VerticalAlignment="Center" FontSize="30" Background="Transparent" Grid.Column="0" Foreground="DarkOrange" /> <TextBlock Text=":" Name="HourSplitMinute" VerticalAlignment="Center" FontSize="30" Background="Transparent" Grid.Column="1" Foreground="DarkOrange" /> <TextBlock Text="00" Name="MinuteArea" VerticalAlignment="Center" FontSize="30" Background="Transparent" Grid.Column="2" Foreground="DarkOrange" /> <TextBlock Text=":" Name="MinuteSplitSecond" VerticalAlignment="Center" FontSize="30" Background="Transparent" Grid.Column="3" Foreground="DarkOrange" /> <TextBlock Text="00" Name="SecondArea" VerticalAlignment="Center" FontSize="30" Background="Transparent" Grid.Column="4" Foreground="DarkOrange" /> </Grid> </UserControl>
后台的逻辑:
public partial class CountDown : UserControl { public DispatcherTimer timer; public Process pro; public Stopwatch sw = new Stopwatch(); public int seconds; public CountDown() { InitializeComponent(); pro = new Process(); timer = new DispatcherTimer(); timer.Interval = new TimeSpan(0, 0, 1); timer.Tick += new EventHandler(timer_Tick); } void timer_Tick(object sender, EventArgs e) { TimeSpan ts = new TimeSpan (0,0,seconds); pro.totalSecond = (int)(ts - sw.Elapsed).TotalSeconds; if (pro .totalSecond > 0) { HourArea.Text = pro.GetHour(); MinuteArea.Text = pro.GetMinute(); SecondArea.Text = pro.GetSecond(); } else { timer.Stop(); sw.Stop (); sw.Reset(); SecondArea.Text = string.Format("{0:D2}", 0); } } } public class Process { public int totalSecond; //获取小时字符串 public string GetHour() { return string.Format("{0:D2}", totalSecond / 3600); } //获取分钟字符串 public string GetMinute() { return string.Format("{0:D2}", (totalSecond / 60 - ((int)(totalSecond / 3600) * 60))); } //获取秒字符串 public string GetSecond() { return string.Format("{0:D2}", totalSecond % 60); } }
调用:
this.countDown1.timer.Stop();
this.countDown1.sw.Reset();
this.countDown1.seconds = 300;//传入倒计时总时间(秒)
this.countDown1.timer.Start();
this.countDown1.sw.Start();
2014。11.28日补充:
最近一个小项目需要用到服务器的系统时间,而且需要精确到小数点后三位。方法如下:
public DateTime GetTime() { string strSql = "select getdate()"; DateTime dt; SqlDataReader dataReader = DbHelperSQL.ExecuteReader(strSql); if (dataReader.Read()) { dt = (DateTime)dataReader[0]; dataReader.Close(); return dt; } return DateTime.MinValue; }
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- php实现的数组转xml案例分析 2019-09-30
- PHP浮点数运算精度问题 2019-08-23
- MySQL由一个双引号引发的误会 2019-07-24
- 把我坑惨的一个update语句! 2019-07-24
- 【详记MySql问题大全集】一、安装MySql 2018-07-22
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash