赞
踩
WPF(Windows Presentation Fundation)是基于windows窗口的用户界面(User Interface)框架,在.NET framework框架下,开发交互图形界面。它支持多种设计方法,可直接使用工具箱拖拽创建控件,也可以通过xmal,cs语言接口设计。
在cs内编辑控件触发事件函数,实现交互算法设计。
本次实验完成简易计算机的ui设计,及其功能实现。
使用wpf框架编写简易计算器,实现加减乘除运算,数域为有理数域。
首先在xaml文件内进行ui界面设计,根据交互逻辑,控件主要组成为显示区(TextBox),数字按键(Button),运算符按键(Button),清零,小数,等于按键(Button)。
参照ios系统calculater设计界面,选择了橙蓝配色。扁平化设计,没有使用按键悬浮或按下特效。
接下来完成算法实现,引入三个变量temp, blnClear, strOper维护计算过程。
运算(本算法实现单运算符从左至右运算)流程主要是:输入新数字,输入下一运算符;初始状态可视为数字0,运算符+。
利用<Grid>标签,包含ColumnDefinitions, RowDefinitions, ColumnSpan, RowSpan等方法。完成页面扁平排版。
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition />...
</Grid.ColumnDefinitions>...
</Grid>
<TextBox Name="number" Grid.Row="0" Grid.ColumnSpan ="4" ... >0</TextBox>
在Window.Resource下编辑统一格式<Style>。
<Window.Resources>
<Style TargetType="Button">
<Setter Property="BorderThickness" Value="1"/>...
</Style>
</Window.Resources>
temp用于记录临时计算结果,blnClear表示下一次键入数字是显示区是否清零(可通过上次键入类型判断),strOper记录最新键入的运算符。
则数字按键,运算按键(+,-,*,/)具有较好的相似结构,可以抽象为基础事件。其余按键独立实现即可。
private void BtnNum_Click(object sender, RoutedEventArgs e)
{
if (blnClear)
{
number.Text = "0";
blnClear = false;
}
Button b1 = (Button)sender;
if (number.Text != "0")
number.Text += b1.Content;
else
number.Text = b1.Content.ToString();
}
private void BtnOperator_Click(object sender, RoutedEventArgs e)
{
double dbSecond = Convert.ToDouble(number.Text);
if (!blnClear)
{
switch (strOper)
{
case "+":
temp += dbSecond;
break;
case "-":
temp -= dbSecond;
break;
case "*":
temp *= dbSecond;
break;
case "/":
temp /= dbSecond;
break;
}
}
if (sender == btn_add)
strOper = "+";
if (sender == btn_sub)
strOper = "-";
if (sender == btn_mul)
strOper = "*";
if (sender == btn_div)
strOper = "/";
number.Text = Convert.ToString(temp);
blnClear = true;
}
又RoutedEventHandler()引用基础事件,在MainWindow中声明即可。
btn_0.Click += new RoutedEventHandler(BtnNum_Click);
btn_add.Click += new RoutedEventHandler(BtnOperator_Click);
2 + 3 =
3.6 / 2 =
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。