MAUI计算器实例

<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;//记录操作符
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值