zoukankan      html  css  js  c++  java
  • WPF 加减乘除计算器

    小玩意,毫无任何难度。

    cs:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows;
    using System.Windows.Controls;
    using System.Windows.Data;
    using System.Windows.Documents;
    using System.Windows.Input;
    using System.Windows.Media;
    using System.Windows.Media.Imaging;
    using System.Windows.Navigation;
    using System.Windows.Shapes;
    
    namespace 计算器
    {
        /// <summary>
        /// MainWindow.xaml 的交互逻辑
        /// </summary>
        public partial class MainWindow : Window
        {
            public MainWindow()
            {
                InitializeComponent();
            }
            private double n1, n2, n3;
    
            private double CM(double n1, double n2, string fun)
            {
                double n3 = 0;
    
                switch (fun)
                {
                    case "+":
                        n3 = n1 + n2;
                        break;
                    case "-":
                        n3 = n1 - n2;
                        break;
                    case "x":
                        n3 = n1 * n2;
                        break;
                    case "÷":
                        n3 = n1 / n2;
                        break;
                    case "%":
                        n3 = n1 % n2;
                        break;
                }
    
                return n3;
            }
    
            private void Num_Click(object sender, RoutedEventArgs e)
            {
                var num = (sender as Button).Content;
                if (!string.IsNullOrWhiteSpace(T4.Text))
                {
                    ClearFun();
                }
                if (!string.IsNullOrEmpty(T2.Text))
                {
                    var d = (T3.Text + num).Replace(" ", string.Empty);
    
                    T3.Text = d;
                    n2 = double.Parse(T3.Text);
                    return;
                }
                var c = (T1.Text + num).Replace(" ", string.Empty);
                T1.Text = c;
                n1 = double.Parse(T1.Text);
    
            }
    
            private void Fun_Click(object sender, RoutedEventArgs e)
            {
                var fun = (sender as Button).Content;
                if (!string.IsNullOrEmpty(T4.Text))
                {
                    ClearFun();
                    return;
                }
                if(!string.IsNullOrEmpty(T1.Text))
                T2.Text = fun.ToString();
    
            }
    
            private void Eq_Click(object sender, RoutedEventArgs e)
            {
                if (string.IsNullOrEmpty(T2.Text) || string.IsNullOrEmpty(T1.Text) || string.IsNullOrEmpty(T3.Text))
                    return;
                n3 = CM(n1, n2, T2.Text);
                T4.Text = n3.ToString();
                T5.Text = "=";
            }
    
            private void Clear_Click(object sender, RoutedEventArgs e)
            {
                ClearFun();
    
            }
            private void Back_Click(object sender,RoutedEventArgs e)
            {
                if (!string.IsNullOrEmpty(T4.Text))
                    return;
                if (!string.IsNullOrEmpty(T2.Text))
                {
                    var d = T3.Text;
                    T3.Text = d.Substring(0,d.Length-1);
                    T3.Text = T3.Text == "" ? "0" : T3.Text;
                    n2 = double.Parse(T3.Text == "" ? "0" : T3.Text);
                    return;
                }
                var c = T1.Text;
                T1.Text = c.Substring(0, c.Length - 1);
                T1.Text = T1.Text == "" ? "0" : T1.Text;
                n1 = double.Parse(T1.Text);
            }
    
            private void ClearFun()
            {
                T1.Text = string.Empty;
                T2.Text = string.Empty;
                T3.Text = string.Empty;
                T4.Text = string.Empty;
                T5.Text = string.Empty;
            }
        }
    }

    xaml:

    <Window x:Class="计算器.MainWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
            xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
            xmlns:local="clr-namespace:计算器"
            mc:Ignorable="d"
            Title="MainWindow" Height="500" Width="400">
        <Window.Resources>
            <Style TargetType="Border">
                <Style.Setters>
                    <Setter Property="BorderThickness" Value="1"/>
                    <Setter Property="BorderBrush" Value="Black"/>
                </Style.Setters>
            </Style>
            <Style TargetType="Button">
                <Style.Setters>
                    <Setter Property="FontSize" Value="25"/>
                </Style.Setters>
            </Style>
            <Style TargetType="TextBlock">
                <Setter Property="MinHeight" Value="90"/>
                <Setter Property="HorizontalAlignment" Value="Right"/>
                <Setter Property="FontSize" Value="28"/>
            </Style>
           
        </Window.Resources>
        <Grid>
            <Grid.RowDefinitions>
                <RowDefinition Height="auto"/>
                <RowDefinition Height="*"/>
            </Grid.RowDefinitions>
            <Border>
                <TextBlock>
                    <Run  x:Name="T1"/>
                  <LineBreak/>
                     <Run x:Name="T2"/>
                  <LineBreak/>
                      <Run x:Name="T3"/>
                  <LineBreak/>
                     <Run x:Name="T5"/>
                     <Run x:Name="T4"/>
                </TextBlock>
            </Border>
            <Grid Grid.Row="1">
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="*"/>
                    <ColumnDefinition Width="*"/>
                    <ColumnDefinition Width="*"/>
                    <ColumnDefinition Width="*"/>
                </Grid.ColumnDefinitions>
                <Grid.RowDefinitions>
                    <RowDefinition Height="*"/>
                    <RowDefinition Height="*"/>
                    <RowDefinition Height="*"/>
                    <RowDefinition Height="*"/>
                    <RowDefinition Height="*"/>
                </Grid.RowDefinitions>
                <Button x:Name="Clear" Click="Clear_Click" Content="C"  Grid.Column="0" Grid.Row="0" Background="#FFE7E7E7" />
                <Button Click="Fun_Click" Content="÷" Grid.Column="1" Grid.Row="0" Background="#FFE7E7E7" />
                <Button Click="Fun_Click" Content="x"  Grid.Column="2" Grid.Row="0" Background="#FFE7E7E7"/>
                <Button Click="Back_Click" Content="" Grid.Column="3" Grid.Row="0" Background="#FFE7E7E7"/>
                <Button Click="Num_Click" Content="1" Grid.Column="0" Grid.Row="1" Background="White"/>
                <Button Click="Num_Click" Content="2" Grid.Column="1" Grid.Row="1" Background="#FFFFC6C6"/>
                <Button Click="Num_Click" Content="3" Grid.Column="2" Grid.Row="1" Background="#FFFFE7C6"/>
                <Button Click="Fun_Click" Content="-" Grid.Column="3" Grid.Row="1" Background="#FFE7E7E7"/>
                <Button Click="Num_Click" Content="4" Grid.Column="0" Grid.Row="2" Background="#FFFFFFC6"/>
                <Button Click="Num_Click" Content="5" Grid.Column="1" Grid.Row="2" Background="#FFC6FFC6"/>
                <Button Click="Num_Click" Content="6" Grid.Column="2" Grid.Row="2" Background="#FFC6FFFF"/>
                <Button Click="Fun_Click" Content="+" Grid.Column="3" Grid.Row="2" Background="#FFE7E7E7"/>
                <Button Click="Num_Click" Content="7" Grid.Column="0" Grid.Row="3" Background="#FFC6C6FF"/>
                <Button Click="Num_Click" Content="8" Grid.Column="1" Grid.Row="3" Background="#FFFFC6FF"/>
                <Button Click="Num_Click" Content="9" Grid.Column="2" Grid.Row="3" Background="#FFFF8484"/>
                <Button Click="Eq_Click" Content="=" Grid.RowSpan="2" Grid.Column="3" Grid.Row="3" Background="#FFE7E7E7"/>
                <Button Click="Fun_Click"  Content="%" Grid.Column="0" Grid.Row="4" Background="#FFFFC684"/>
                <Button Click="Num_Click" Content="0" Grid.Column="1" Grid.Row="4" Background="#FFFF8484"/>
                <Button Click="Num_Click" Content="." Grid.Column="2" Grid.Row="4" Background="#FF84FF84"/>
            </Grid>
        </Grid>
    </Window>
  • 相关阅读:
    前端构建工具——Gulp
    jQuery事件命名空间
    浏览器类型鉴别那些事
    花式秀Mac——Mac快捷操作整理ing……
    解构jQuery之jQuery整体架构
    立即调用表达式
    iScroll小计
    JSONP原理及jQuery中的使用
    同源策略和跨域方法
    WebStrom、Sublime Text快捷键及使用技巧(补充ing...)
  • 原文地址:https://www.cnblogs.com/T-ARF/p/12118812.html
Copyright © 2011-2022 走看看