Beispiel #1
0
        private void OnClearBtnClick(object sender, RoutedEventArgs e)
        {
            Sign sign = (Sign)((Button)sender).Tag;

            switch (sign)
            {
            case Sign.CBtn:
                _calculator.ClearAll();
                result.Text  = "";
                example.Text = "";
                SaveBox.Text = "";
                break;

            case Sign.CeBtn:
                _calculator.ClearTwoNumber();
                example.Text = example.Text.Remove(example.Text.Length - result.Text.Length, result.Text.Length);
                result.Text  = "";
                _current     = NegativePositive.Positive;
                break;

            case Sign.ClearBtn:
                if (result.Text.Length != 0)
                {
                    _calculator.Clear();
                    example.Text = example.Text.Remove(example.Text.Length - 1);
                    result.Text  = result.Text.Remove(result.Text.Length - 1);
                }
                break;
            }
        }
Beispiel #2
0
 private void NegativeNumberBtn_Click(object sender, RoutedEventArgs e)
 {
     if (_current == NegativePositive.Positive)
     {
         example.Text = example.Text.Insert(example.Text.Length - result.Text.Length, "-");
         result.Text  = result.Text.Insert(0, "-");
         _calculator.NegPos();
         _current = NegativePositive.Negative;
     }
     else
     {
         example.Text = example.Text.Remove(example.Text.Length - result.Text.Length, 1);
         result.Text  = result.Text.Remove(0, 1);
         _calculator.NegPos();
         _current = NegativePositive.Positive;
     }
 }
Beispiel #3
0
        private void OnEqualClick(object sender, RoutedEventArgs e)
        {
            _calculator.inputnumber();
            Sign sign = (Sign)((Button)sender).Tag;

            if (_step != sign)
            {
                example.Text += (string)((Button)e.OriginalSource).Content;
                _calculator.ArithmeticAction();
                _calculator.outputnumber();
                result.Text   = _calculator.EqualAction(sign);
                example.Text += _calculator.EqualAction(sign);
                _calculator.state(sign);
                _step    = sign;
                _current = NegativePositive.Positive;
            }
        }
Beispiel #4
0
        private void OnCalcBtnClick(object sender, RoutedEventArgs e)
        {
            _calculator.inputnumber();
            Sign sign = (Sign)((Button)sender).Tag;

            if (sign != Sign.Perc)
            {
                _calculator.ArithmeticAction();
                //}  //сначала проверяем action и выполняем соответствующее действие
                _calculator.state(sign);                                    //после меняем action в зависимости от нажатой кнопки
                example.Text += (string)((Button)e.OriginalSource).Content; //записываем
                _step         = sign;
            }
            else // это если нажата кнопка процента
            {
                _calculator.PercentAction();
            }
            result.Text = "";
            _current    = NegativePositive.Positive;
        }
Beispiel #5
0
        private void OnKeyDown(object sender, KeyEventArgs e)
        {
            switch (e.Key)
            {
            case Key.NumPad0:
                OnDigitBtnClick(Num0Btn, null);
                break;

            case Key.NumPad1:
                OnDigitBtnClick(Num1Btn, null);
                break;

            case Key.NumPad2:
                OnDigitBtnClick(Num2Btn, null);
                break;

            case Key.NumPad3:
                OnDigitBtnClick(Num3Btn, null);
                break;

            case Key.NumPad4:
                OnDigitBtnClick(Num4Btn, null);
                break;

            case Key.NumPad5:
                OnDigitBtnClick(Num5Btn, null);
                break;

            case Key.NumPad6:
                OnDigitBtnClick(Num6Btn, null);
                break;

            case Key.NumPad7:
                OnDigitBtnClick(Num7Btn, null);
                break;

            case Key.NumPad8:
                OnDigitBtnClick(Num8Btn, null);
                break;

            case Key.NumPad9:
                OnDigitBtnClick(Num9Btn, null);
                break;

            case Key.Enter:
                Sign sign5 = Sign.Equal;
                if (_step != sign5)
                {
                    example.Text += "=";
                    _calculator.ArithmeticAction();
                    result.Text   = _calculator.EqualAction(sign5);
                    example.Text += _calculator.EqualAction(sign5);
                    _calculator.state(sign5);
                    _step    = sign5;
                    _current = NegativePositive.Positive;
                }
                break;

            case Key.Add:
                Sign sign1 = Sign.Plus;
                if (sign1 != Sign.Perc)
                {
                    _calculator.ArithmeticAction();
                    //}  //сначала проверяем action и выполняем соответствующее действие
                    _calculator.state(sign1);  //после меняем action в зависимости от нажатой кнопки
                    example.Text += "+";       //записываем
                    _step         = sign1;
                }
                else     // это если нажата кнопка процента
                {
                    _calculator.PercentAction();
                }
                result.Text = "";
                _current    = NegativePositive.Positive;;
                break;

            case Key.Subtract:
                Sign sign2 = Sign.Minus;
                if (sign2 != Sign.Perc)
                {
                    _calculator.ArithmeticAction();
                    //}  //сначала проверяем action и выполняем соответствующее действие
                    _calculator.state(sign2);  //после меняем action в зависимости от нажатой кнопки
                    example.Text += "-";       //записываем
                    _step         = sign2;
                }
                else     // это если нажата кнопка процента
                {
                    _calculator.PercentAction();
                }
                result.Text = "";
                _current    = NegativePositive.Positive;;
                break;

            case Key.Multiply:
                Sign sign3 = (Sign)((Button)sender).Tag;
                if (sign3 != Sign.Perc)
                {
                    _calculator.ArithmeticAction();
                    //}  //сначала проверяем action и выполняем соответствующее действие
                    _calculator.state(sign3);  //после меняем action в зависимости от нажатой кнопки
                    example.Text += "*";       //записываем
                    _step         = sign3;
                }
                else     // это если нажата кнопка процента
                {
                    _calculator.PercentAction();
                }
                result.Text = "";
                _current    = NegativePositive.Positive;;
                break;

            case Key.Divide:
                Sign sign4 = Sign.Div;
                if (sign4 != Sign.Perc)
                {
                    _calculator.ArithmeticAction();
                    //}  //сначала проверяем action и выполняем соответствующее действие
                    _calculator.state(sign4);  //после меняем action в зависимости от нажатой кнопки
                    example.Text += "/";       //записываем
                    _step         = sign4;
                }
                else     // это если нажата кнопка процента
                {
                    _calculator.PercentAction();
                }
                result.Text = "";
                _current    = NegativePositive.Positive;;
                break;

            default:
                break;
            }
        }