- •Давайте не будем изобретать колесо.
- •Прежде всего: Данные
- •Рисование и Упорство
- •Объект Graphics
- •Начинаем
- •Расположение и Размер
- •Вычислите Общее значение
- •Вычислите Доли и Нарисуйте Диаграмму
- •Рисуем диаграмму
- •Улучшите диаграмму
- •Заголовок
- •Пули (Bullets) и Информация о Компании
- •Расположите После Использования
- •Все сделано!
- •Нарисуем это!
- •Давайте начнем
- •Шаг 1: генерация данных
- •Шаг 2: Получаем элемент управления
- •Повторно используемые значения
- •Шаг 3: Установка полей, промежутки и размеры
- •Шаг 4а: Объекты Graphics и Bitmap
- •Шаг 4b: Вертикальная ось
- •Шаг 4c: Отметки и текст
- •Шаг 4d: Время для проверки
- •Шаг 5: Горизонтальная ось и панели
- •5B. Панели
- •5C. Названия стран
- •Шаг 6: Все показано!
- •Удачные диаграммы: Вторая помощь в круговых диаграммах. Часть 3
- •Разметка формы
- •Давайте начнем писать код
- •Временные переменные
- •Элементы пользовательского ввода
- •Получение данных
- •Создание диаграммы
- •Рисуем Panel
- •Финальное домоводство
- •Опция «Уппс!»
- •Настройка
- •Создаем данные
- •Элементы управления
- •Вертикальная ось
- •Точечные отметки шкалы
- •Проверяем 1, 2, 3
- •Базовая линия (ось X)
- •3D Панели
- •Последние штрихи
- •Удачные диаграммы. Часть 5 - Линейные графики
- •Данные для образца
- •Переменные
- •Внешние границы диаграммы
- •Объект Graphics
- •Вертикальная ось
- •Отметки
- •Горизонтальная ось (a.K.A. Базовая линия)
- •Рисование Линии (Линий)
- •Расчет вертикальной шкалы
- •Создаем и рисуем первый сегмент линии
- •Превращающаяся и исчезающая проблема линий
- •Первый сегмент линии
- •Остающиеся сегменты линии
- •Преобразования
- •Рисуем преобразованную линию
- •Проверяем
- •Отображаем месяцы
- •Отображаем результат
- •Соединения линий
- •Линии сетки
- •Горизонтальные линии сетки
- •Вертикальные линии сетки
- •Последнее отображение
- •Удачные диаграммы. Часть 6 - Динамическая линейная диаграмма
- •Элементы управления формы
- •Инициирующий код
- •Рисование направляющих линий диаграммы
- •Как это работает
- •Отображаем значения
- •Использование Vertical ScrollBar
- •Проверяем
- •Итоги первой демонстрации
- •Затененный график
- •Значения вертикальной оси
- •Код Вертикальных Значений
- •Подвижные направляющие линии
- •Отображаем направляющие линии
- •Направляющие линии и отображенные значения
- •Вертикальные значения
- •Возможные улучшения
- •Охваченные темы
Шаг 2: Получаем элемент управления
Диаграмма будет изображаться в PictureBox и рисование будет начинаться после щелчка на кнопке. Настало время добавить эти элементы на форму. Добавьте элемент PictureBox на форму и назовите его PBBarChart. PictureBox должен занимать около 80% поверхности формы. Затем добавьте кнопку где-нибудь на оставшемся свободном месте на форме и назовите ее btnDraw. Цвет фона установите светлым на свой выбор. Мы готовы начать создавать диаграмму.
Повторно используемые значения
Как мы узнали в Части 1, большая часть процесса рисования форм в Windows требует игр с установкой начальных и конечных точек линий, фигур, текста и т.д. Обычно это происходит, потому что мы руководим построением большей части того, что видит пользователь; поэтому мы должны кодировать точные позиции и размеры всего, что мы создаем. Подразумевая повторное использование, я включил некоторые переменные в статьи и примеры, и мы будем использовать их для помещения выше указанных значений. Надеюсь, это даст нам два преимущества. Во-первых, вы легко сможете менять установки, чтобы законченный продукт имел тот вид, который вам хотелось бы. Во-вторых, этот сделает большую часть кода легким для повторения; если мы будем применять понятные названия для наших переменных, то это поможет сделать каждую часть каждого кода понятнее, чем она является на самом деле.
Шаг 3: Установка полей, промежутки и размеры
Диаграмма будет нарисована внутри PictureBox, поэтому нам следует создать поле между самой диаграммой и внешними краями PictureBox. Мы применим четыре переменных, чтобы хранить эти значения. Названия их говорят сами за себя:
' # пиксели Y-оси вставки PicBox слева
Dim LeftMargin As Integer = 35
' # пиксели оставшиеся неиспользованными справа от PicBox
Dim RightMargin As Integer = 15
' # пиксели над базой picturebox X-ось помещена
Dim BaseMargin As Integer = 35
' Поле вверху
Dim TopMargin As Integer = 10
Когда мы будем рисовать панели диаграммы, они будут выглядеть лучше с маленькими промежутками между ними. Следующая переменная содержит это значение:
Dim BarGap As Integer = 12
Шаг 4а: Объекты Graphics и Bitmap
Мы касались объекта Graphics в Части 1 и видели, что к нему можно относиться, как к холсту, на котором мы можем рисовать то, что хотим видеть на поверхности формы или другом элементе управления. Мы рисовали прямо на ней нашу круговую диаграмму. Так как в этой статье мы будем иметь дело с PictureBox, подход будет немного отличаться. Вот что мы делаем:
Объявляем объект Graphics
Также создаем объект Bitmap. Этот Bitmap будет того же размера, что и PictureBox и будет приписан объекту Graphics элемента PictureBox
Чтобы получить доступ к методам рисования класса Graphics, мы приписываем Bitmap объекту Graphics
Когда рисование будет закончено, мы получим Bitmap, который отредактируем графическими инструментами и используем, как изображение в PictureBox’е
Запутались? Не переживайте! Это кажется сложными только при первой встрече, но скоро все начнет становиться на свои места. В сущности, мы создаем объект Graphics, который имеет ту же форму, размер и разрешение, что и PictureBox. Мы можем позаимствовать это, а позже мы применим наш законченный рисунок, как изображение для PictureBox’а. Весь рисующий код входит в одну процедуру, названную DrawChart. Вот код для указанных выше действий (конечно, это первая часть всей процедуры):
Private Sub DrawChart()
Dim g As Graphics
Dim bmap As Bitmap
bmap = New Bitmap(PBBarChart.Width, PBBarChart.Height, _
PBBarChart.CreateGraphics)
g = Graphics.FromImage(bmap)