Загрузка данных
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("Ошибка ввода данных");
}
}
}
}