using Avalonia.Controls;
using Avalonia.Interactivity;
namespace CalculatorApp
{
public partial class MainWindow : Window
{
private double _firstNumber = 0;
private string _operation = "";
private bool _isNewInput = true;
public MainWindow()
{
InitializeComponent();
}
// Нажатие на цифру
private void OnDigitClick(object sender, RoutedEventArgs e)
{
if (sender is Button button)
{
string digit = button.Content?.ToString() ?? "";
if (_isNewInput || Display.Text == "0")
{
Display.Text = digit;
_isNewInput = false;
}
else
{
Display.Text += digit;
}
}
}
// Нажатие на операцию (+, -, *, /)
private void OnOperationClick(object sender, RoutedEventArgs e)
{
if (sender is Button button)
{
double.TryParse(Display.Text, out _firstNumber);
_operation = button.Content?.ToString() ?? "";
_isNewInput = true;
}
}
// Нажатие на "="
private void OnEqualsClick(object sender, RoutedEventArgs e)
{
if (double.TryParse(Display.Text, out double secondNumber))
{
double result = 0;
switch (_operation)
{
case "+": result = _firstNumber + secondNumber; break;
case "-": result = _firstNumber - secondNumber; break;
case "*": result = _firstNumber * secondNumber; break;
case "/":
result = secondNumber != 0 ? _firstNumber / secondNumber : 0;
break;
}
Display.Text = result.ToString();
_isNewInput = true;
_operation = "";
}
}
// Сброс (Кнопка C)
private void OnClearClick(object sender, RoutedEventArgs e)
{
Display.Text = "0";
_firstNumber = 0;
_operation = "";
_isNewInput = true;
}
}
}