<Grid RowDefinitions="2*,*,*,*,*" ColumnDefinitions="*,*,*,*" BackgroundColor="Gray" ColumnSpacing="1" RowSpacing="1">
<Label x:Name="lblResult" Grid.ColumnSpan="4"
BackgroundColor="White" FontAttributes="Bold"
FontSize="36" HorizontalTextAlignment="End"
VerticalTextAlignment="Center" Padding="10"
Text="0" TextColor="Orange"/>
<Button Text="1" Grid.Row="1" Grid.Column="0" FontSize="28" Style="{StaticResource numSytle}" Clicked="OnNum_Clicked" />
<Button Text="2" Grid.Row="1" Grid.Column="1" FontSize="28" Style="{StaticResource numSytle}" Clicked="OnNum_Clicked" />
<Button Text="3" Grid.Row="1" Grid.Column="2" FontSize="28" Style="{StaticResource numSytle}" Clicked="OnNum_Clicked" />
<Button Text="+" Grid.Row="1" Grid.Column="3" FontSize="28" Style="{StaticResource operStyle}" Clicked="OnOper_Clicked"/>
<Button Text="4" Grid.Row="2" Grid.Column="0" FontSize="28" Style="{StaticResource numSytle}" Clicked="OnNum_Clicked" />
<Button Text="5" Grid.Row="2" Grid.Column="1" FontSize="28" Style="{StaticResource numSytle}" Clicked="OnNum_Clicked" />
<Button Text="6" Grid.Row="2" Grid.Column="2" FontSize="28" Style="{StaticResource numSytle}" Clicked="OnNum_Clicked" />
<Button Text="-" Grid.Row="2" Grid.Column="3" FontSize="28" Style="{StaticResource operStyle}" Clicked="OnOper_Clicked"/>
<Button Text="7" Grid.Row="3" Grid.Column="0" FontSize="28" Style="{StaticResource numSytle}" Clicked="OnNum_Clicked" />
<Button Text="8" Grid.Row="3" Grid.Column="1" FontSize="28" Style="{StaticResource numSytle}" Clicked="OnNum_Clicked" />
<Button Text="9" Grid.Row="3" Grid.Column="2" FontSize="28" Style="{StaticResource numSytle}" Clicked="OnNum_Clicked" />
<Button Text="*" Grid.Row="3" Grid.Column="3" FontSize="28" Style="{StaticResource operStyle}" Clicked="OnOper_Clicked"/>
<Button Text="0" Grid.Row="4" Grid.Column="0" FontSize="28" Style="{StaticResource numSytle}" Clicked="OnNum_Clicked" />
<Button Text="C" Grid.Row="4" Grid.Column="1" FontSize="28" Style="{StaticResource numSytle}" Clicked="OnClear_Clicked"/>
<Button Text="=" Grid.Row="4" Grid.Column="2" FontSize="28" Style="{StaticResource numSytle}" Clicked="OnCalc_Clicked" />
<Button Text="/" Grid.Row="4" Grid.Column="3" FontSize="28" Style="{StaticResource operStyle}" Clicked="OnOper_Clicked"/>
</Grid>
double num1, num2;
string oper = string.Empty;//记录操作符
int state = 0;
//state = 0 输入num1的状态
//state = 1 输入运算符的状态
//state = 2 输入num2的状态
//state = 3 按下等号状态
private void OnNum_Clicked(object sender, EventArgs e)
{
Button button = (Button)sender;
if (state == 1)
{
lblResult.Text = "";
state = 2;
}else if (state == 3)
{
lblResult.Text = "";
state = 0;
}
lblResult.Text += button.Text;
double num = double.Parse(lblResult.Text);
if (state == 0)
{
num1 = num;
}
else
{
num2 = num;
}
lblResult.Text = num.ToString();
}
private void OnCalc_Clicked(object sender, EventArgs e)
{
Calculate();
state = 3;
}
private void Calculate()
{
double result = 0;
if (oper == "+")
{
result = num1 + num2;
}
else if (oper == "-")
{
result = num1 - num2;
}
else if (oper == "*")
{
result = num1 * num2;
}
else if (oper == "/")
{
result = num1 / num2;
}
lblResult.Text = result.ToString();
num1 = result;
}
private void OnClear_Clicked(object sender, EventArgs e)
{
lblResult.Text = "0";
num1 = 0;
num2 = 0;
state = 0;
}
private void OnOper_Clicked(object sender, EventArgs e)
{
if (state == 2)
{
Calculate();
}
state = 1;
oper = ((Button)sender).Text;//记录操作符
}
