Spread XAML 表格控件(Spread WinRT 和 Spread WPF-Silverlight) 具备丰富的数据展示功能和公式计算功能。可以轻松创建计算器、交互式的Dashboard、丰富的报表样式等!今天我们就来介绍下如何通过Spread实现一个简易的计算器。
首先,创建新的工程
添加 GcSpreadSheet 控件到窗体中
右键点击控件,选择“Create a new document” ,这时工程中会自动创建spreasheet1.ssxaml 文件,同时自动设置当前 Spread 控件的 DocumentUri 属性为该文档。
这时设计器已经自动弹出来了,可以通过设计器模拟Spread表格的样式。操作行为基本和 Excel 是一致的,设置完成后保存模板拖出 Spread 设计器。
接下来我们可以调用 CellClick 事件
XAML code:
<UI:GcSpreadSheet x:Name="gcSpreadSheet1" Width="490" Height="730" DocumentUri="ms-appx:///Spread Documents/spreadsheet1.ssxml" CellClick="gcSpreadSheet1_CellClick"/>
C# code:
void gcSpreadSheet1_CellClick(object sender, CellClickEventArgs e)
{
var sheet = this.gcSpreadSheet1.ActiveSheet;
if (e.Column == 4 && e.Row == 7) //=
{
sheet[2, 1].Formula = "";
try
{
sheet[2, 1].Formula = sheet[1, 1].Text;
}
catch
{
sheet[2, 1].Text = "Invalid Formula!";
}
}
else if (e.Column == 1 && e.Row == 3) //C
{
sheet[1, 1].ResetText();
sheet[2, 1].ResetText();
sheet[2, 1].Formula = "";
}
else if (e.Column == 3 && e.Row == 3) //BS
{
var txt = sheet[1, 1].Text;
if (txt == string.Empty) return;
sheet[1, 1].Text = txt.Substring(0, txt.Length - 1);
}
else if (e.Column > 0 && e.Column < 5 && e.Row > 3 && e.Row < 9) //digits and signs
{
sheet[1, 1].Text = sheet[1, 1].Text + sheet[e.Row, e.Column].Text;
sheet[2, 1].ResetText();
sheet[2, 1].Formula = "";
}
}
Demo下载: