none
Вывод содержимого wav файла в виде графика и выравнивание текста в метках RRS feed

  • Вопрос

  • 1. Хотел бы вывести содержимое wav файла в виде графика на форму. Не нашел на
    панели элементов нужного элемента. Подскажите, пожалуйста, как решить эту
    задачу.
    2. Определяю параметры файла и записываю их в метки:

    private void Form1_Load(object sender, EventArgs e)
    {
     lblFileIn.Text = "..\\..\\2000smpl_1000_2000_3000.wav";
     WorkWav workWav  = new WorkWav(lblFileIn.Text);
     label4.Text = "";
     for (int i = 0; i < 3; i++)
     {
       label4.Text += workWav.dDataWav[i].ToString() + "\n";
     }
     lblBitsPerSample.Text += " " + workWav.fmtChunkFile.dwBitsPerSample.ToString();
     lblNumSamples.Text += " " + workWav.dataChunkFile.dwNumSamples.ToString();
     lblSamplesPerSec.Text += " " + workWav.fmtChunkFile.dwSamplesPerSec.ToString();
    }

    Хотел бы, чтобы параметры файла были выровнены по левому краю, т.е. первые цифры параметров были выровнены по вертикали. Сейчас они идут через пробел от названия метки и выглядят некрасиво. Как я понимаю, нужно добавить в зависимости от длины метки нужное количество пробелов. Я пытался в лоб это сделать, но дошел только до определения максимальной длины:

    private void button1_Click(object sender, EventArgs e)
    {
     int[] nL = {lblBitsPerSample.Text.Length, lblNumSamples.Text.Length, lblSamplesPerSec.Text.Length};Подскажите, пожалуйста, как это сделать правильно?  
     int n = nL[0];
     for(int i = 1; i < nL.Length; i++)
     {
       if(n < nL[i])
         n = nL[i];
     }
    }
    , а вот как добавлять нужное количество пробелов - не знаю. Вообще как-то
    получается очень сложно и неэффективно. Подскажите, пожалуйста, как правильно
    решить эту задачу. Проект разместил по ссылке http://zalil.ru/33791838

    Alex

    26 сентября 2012 г. 19:31

Ответы

Все ответы

  • Привет

    По первому вопросу, вы можете использовать как контрол от Microsoft, так и от сторонних производителей, вот ссылки на эти элементы управления:

    Microsoft Chart Control доступен с .net 4 по умолчанию, если у вас .net 3.5 - то нужно будет его скачать Microsoft Chart Controls for Microsoft .NET Framework 3.5. По нему есть примеры, они расположены здесь - Samples Environment for .NET Framework 4 Chart Controls

    Также можно посмотреть на проект .netCHARTING, он вроде тоже неплохо справляется со своей задачей.


    Для связи [mail]

    • Помечено в качестве ответа tumanovalex 28 сентября 2012 г. 14:42
    27 сентября 2012 г. 7:25
  • По второму вопросу - почему вы просто на форме не можете выровнять метки (label) по вертикали и выводить текст в них сразу, без лишних пробелов?

    Для связи [mail]

    27 сентября 2012 г. 7:34
  • Хотелось бы вывести название параметров и их значение, а не только значение параметров. Т.е. я к названию параметра в label прибавляю значение параметра, преобразованного в строку. Конечно, можно сделать для каждой метки справа другую label и выровнять дополнительные label по вертикали, но делать это не хочется, хочется с минимальным количеством label.


    Alex

    28 сентября 2012 г. 14:45