コード例 #1
0
        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();
        }
コード例 #2
0
 private void SetFocus()
 {
     ExpressionBox.Focus();
     ExpressionBox.Select(ExpressionBox.Text.Length, 0);
     ExpressionBox.ScrollToEnd();
 }