最近有朋友在问关于数字时钟相关的问题,我想该功能可以使用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

WpfApplication1.zip (21.51 kb)