private void Click(object sender, RoutedEventArgs e)
 {
     if (sender == BTNswap)
     {
         Box1.Visibility = Box1.Visibility == Visibility.Visible ? Visibility.Collapsed : Visibility.Visible;
         Box2.Visibility = Box2.Visibility == Visibility.Visible ? Visibility.Collapsed : Visibility.Visible;
     }
     else if (sender == BTNclear)
     {
         (((Box1.Visibility == Visibility.Visible ? Box1 : Box2).Child as ScrollViewer).Content as TextBlock).Text = "";
     }
     else if (sender == BTNprintStack)
     {
         ((Box1.Child as ScrollViewer).Content as TextBlock).Text = calc.PrintStack();
     }
     else if (sender == BTNmode)
     {
         mode = (mode + 1) % 3;
         calc.SetMode(mode);
         BTNmode.IsChecked = true;
         if (mode == 0)
         {
             BTNmode.Content = "Polish Notation";
         }
         else if (mode == 1)
         {
             BTNmode.Content = "Infix";
         }
         else if (mode == 2)
         {
             BTNmode.Content = "Reverse Polish Notation";
         }
     }
     else if (sender == BTNpush)
     {
         try
         {
             calc.Eval(InputBox.Text);
         }catch (Exception ex)
         {
             ((Box2.Child as ScrollViewer).Content as TextBlock).Text = ex.ToString();
             Box1.Visibility = Visibility.Collapsed;
             Box2.Visibility = Visibility.Visible;
         }
         InputBox.Text = "";
         Click(BTNprintStack, e);
     }
 }