public MainWindow() { InitializeComponent(); ExpressionBox.Focus(); CloseWindowWhileRunningTestsInDebugMode(); }
private void SolveExpression(object sender, RoutedEventArgs e) { string expression = ExpressionBox.Text.TrimEnd(); if (!string.IsNullOrEmpty(expression)) { StringBuilder result = new StringBuilder(); try { result.Append(RomanExpressionSolver.Solve(expression)); ResultLabelText.FontSize = 70; ResultLabelText.Background = (SolidColorBrush)(new BrushConverter().ConvertFrom("#8873CB")); ResultLabelText.Foreground = (SolidColorBrush)(new BrushConverter().ConvertFrom("#250D71")); } catch (Exception ex) { result.Append(expression + " : " + ex.Message); ResultLabelText.FontSize = 16; ResultLabelText.Background = new SolidColorBrush(Colors.Red); ResultLabelText.Foreground = new SolidColorBrush(Colors.White); } ExpressionBox.Text = ""; ResultLabelText.Text = result.ToString(); LastExpressionText.Text = $"Last expression: {expression}"; ExpressionBox.Focus(); } }
private void PutContent(object sender, RoutedEventArgs e) { Button btn = (Button)sender; string content = btn.Content.ToString(); if (ExpressionBox.SelectedText.Length > 0) { ExpressionBox.SelectedText = content; Regex trimmer = new Regex(@"\s\s+"); ExpressionBox.Text = trimmer.Replace(ExpressionBox.Text, " "); ExpressionBox.Select(0, 0); int caretLength = ExpressionBox.Text.Length; ExpressionBox.CaretIndex = caretLength; } else { string[] operators = { "+", "-", "*", "/", "%", "^", "√" }; if (operators.Contains(content)) { ExpressionBox.Text = ExpressionBox.Text.Insert(ExpressionBox.CaretIndex, $" {content} "); int caretLength = ExpressionBox.Text.Length; ExpressionBox.CaretIndex = caretLength + 3; } else { ExpressionBox.Text = ExpressionBox.Text.Insert(ExpressionBox.CaretIndex, content); int caretLength = ExpressionBox.Text.Length; ExpressionBox.CaretIndex = caretLength + 1; } Regex trimmer = new Regex(@"\s\s+"); ExpressionBox.Text = trimmer.Replace(ExpressionBox.Text, " "); } ExpressionBox.Focus(); }
private void SetFocus() { ExpressionBox.Focus(); ExpressionBox.Select(ExpressionBox.Text.Length, 0); ExpressionBox.ScrollToEnd(); }