Загрузка данных


using System;
using System.Windows;
using System.Windows.Controls;

namespace MetalCalc
{
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private void Material_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            if (Material.SelectedItem == null) return;

            string v = ((ComboBoxItem)Material.SelectedItem).Content.ToString();

            if (v == "Сталь") density.Text = "7.85";
            if (v == "Алюминий") density.Text = "2.7";
            if (v == "Медь") density.Text = "8.96";
            if (v == "Цинк") density.Text = "7.1";
        }

        private void Calc_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                double dens = Convert.ToDouble(density.Text);
                double l = Convert.ToDouble(length.Text);

                double volume = 0;

                // ЛИСТ
                if (rbList.IsChecked == true)
                {
                    double A = Convert.ToDouble(a.Text) / 1000;
                    double B = Convert.ToDouble(b.Text) / 1000;
                    volume = A * B * l;
                }

                // КРУГ / ПРОВОЛОКА
                else if (rbCircle.IsChecked == true)
                {
                    double R = Convert.ToDouble(a.Text) / 2000;
                    volume = Math.PI * R * R * l;
                }

                // ТРУБА
                else if (rbTube.IsChecked == true)
                {
                    double R = Convert.ToDouble(a.Text) / 2000;
                    double r = Convert.ToDouble(b.Text) / 2000;
                    volume = Math.PI * (R * R - r * r) * l;
                }

                // КВАДРАТ
                else if (rbSquare.IsChecked == true)
                {
                    double A = Convert.ToDouble(a.Text) / 1000;
                    volume = A * A * l;
                }

                // КВАДРАТНАЯ ТРУБА
                else if (rbSquareTube.IsChecked == true)
                {
                    double A = Convert.ToDouble(a.Text) / 1000;
                    double B = Convert.ToDouble(b.Text) / 1000;
                    volume = (A * A - (A - 2 * B) * (A - 2 * B)) * l;
                }

                // УГОЛОК (упрощённо)
                else if (rbAngle.IsChecked == true)
                {
                    double A = Convert.ToDouble(a.Text) / 1000;
                    double B = Convert.ToDouble(b.Text) / 1000;
                    volume = (A * B) * l * 0.5;
                }

                // ЛЕНТА
                else if (rbStrip.IsChecked == true)
                {
                    double A = Convert.ToDouble(a.Text) / 1000;
                    double B = Convert.ToDouble(b.Text) / 1000;
                    volume = A * B * l;
                }

                // Остальные (упрощение)
                else if (rbChannel.IsChecked == true ||
                         rbBeam.IsChecked == true ||
                         rbHex.IsChecked == true ||
                         rbRails.IsChecked == true)
                {
                    double A = Convert.ToDouble(a.Text) / 1000;
                    double B = Convert.ToDouble(b.Text) / 1000;

                    volume = A * B * l; // допустимое упрощение
                }

                double weight = volume * dens;
                result.Text = weight.ToString("0.00");
            }
            catch
            {
                MessageBox.Show("Ошибка ввода данных");
            }
        }
    }
}