最近有朋友在问关于数字时钟相关的问题,我想该功能可以使用Spread WPF-Silverlight或Spread WinRT很方便的实现。下面我就来看看如何使用Spread WPF实现数字时钟吧。
打开Spread设计器,使用Spread设计出一个数据时钟的外观:
定义每个数字的显示模板,并给该模板区域的左上角单元格设置一个自定义名称“DigitPattern”,
使用Spread的公式获取时间对应的数字:
=LEFT(TEXT(HOUR(NOW()),"00"))
使用公式来获取每个数字的显示模板:
=OFFSET(DigitPattern,ROW()-ROW(B2),COLUMN()-COLUMN(B2)+A1*3)
使用条件格式化显示每个数字:
最后在MainPage页面的后台代码中添加以下代码:
public MainPage() { this.InitializeComponent(); DispatcherTimer dt = new DispatcherTimer(); dt.Interval = TimeSpan.FromSeconds(1); dt.Tick += (sender, e) => { if (this.gcSpreadSheet1.ActiveSheet != null) this.gcSpreadSheet1.ActiveSheet.Recalculate(); }; dt.Start(); }
运行截图:
源码下载:VS2010 + Spread WPF-Silverlight