Построение диаграмм в WPF
Автор: Махеш Чанд (Mahesh Chand) В этом руководстве показывается, как рисовать разные диаграммы, в том числе графики, линейчатые диаграммы, гистограммы, диаграммы с областями, точечные диаграммы и круговые диаграммы, с помощью WPF и C#. Построение диаграмм в WPF Набор средств WPF, выпущенный в июне 2009 года, поставляется со сборкой визуализации данных с именем System.Windows.Controls.DataVisualization.Toolkit.dll, в которой размещается функциональность для построения диаграмм в WPF. В этой статье показывается, как рисовать диаграммы с помощью набора средств WPF. Примечание. Эта статья написана с использованием набора средств WPF, выпущенного в июне 2009 года, который можно загрузить здесь: Набор средств WPF - выпуск: набор средств WPF июнь 2009 г. Этот набор средств может стать частью WPF в ближайшем будущем. Добавление ссылки на набор средств WPF Прежде чем использовать в приложении WPF какую-либо функциональность, связанную с созданием диаграмм, необходимо загрузить набор средств WPF. Затем следует добавить ссылку на сборку. Чтобы добавить ссылку, щелкните правой кнопкой мыши папку References проекта в обозревателе решений и выберите в меню пункт "Add Reference" ("Добавить ссылку"). Откроется диалоговое окно "Add Reference" ("Добавление ссылки"), которое можно видеть на рисунке 1. В этом диалоговом окне выберите вкладку "Browse" ("Обзор") и перейдите к сборке System.Windows.Controls.DataVisualization.Toolkit.dll из папки, в которой установлен набор средств WPF. Эта сборка находится в папке Binaries. Совет. Если нежелательно загружать набор средств WPF, то можно загрузить присоединенный проект, скопировать сборки WPFToolkit.dll и System.Windows.Controls.DataVisualization.Toolkit.dll из этого проекта в папку bin вашего проекта и добавить ссылку. Рисунок 1 После добавления ссылки в разделе References диалогового окна появится элемент System.Windows.Controls.DataVisualization.Toolkit, как показано на рисунке 2. Рисунок 2 На следующем этапе необходимо выполнить импорт пространств имен System.Windows.Controls.DataVisualization.toolkit и System.Windows.Controls.DataVisualization.Charting на страницу. После ввода на странице "xmlns=" эти пространства имен буду показаны в Intellisense. Выберите и добавьте оба эти пространства имен на страницу, как показано на рисунке 3. Рисунок 3 Последняя ссылка, добавленная на страницу, выглядит следующим образом. Как можно видеть, я добавил имя этой ссылки в ToolkitRef. xmlns:DV="clr-namespace:System.Windows.Controls.DataVisualization;assembly=System. xmlns:DVC="clr-namespace:System.Windows.Controls.DataVisualization.Charting;assembly= Теперь на странице можно видеть DVC, и если его выбрать, то появится уведомление, что все элементы, связанные с построением диаграмм, добавлены в Intellisense. Чтобы добавить на страницу элемент управления Chart, достаточно выбрать его из списка. Список элементов, связанных с построением диаграмм, выглядит, как показано на рисунке 4. Рисунок 4 Создание диаграммы Элемент Chart представляет элемент управления Chart WPF в XAML. < DVC:Chart></DVC:Chart> Фрагмент кода, приведенный в листинге 1, создает элемент Chart и устанавливает его свойства ширины, высоты и фона.
Листинг 1 Результат кода, приведенного в листинге 1, показан на рисунке 5. Рисунок 5 Типы диаграмм Для создания типа диаграммы используется атрибут Series элемента Chart. Если посмотреть на рисунок 6, можно заметить атрибуты BarSeries, ColumnSeries, LineSeries, PieSeries и ScatterSeries, и на основе этих атрибутов будут создаваться диаграммы. Рисунок 6 Линейчатая диаграмма Фрагмент кода, показанный в листинге 2, создает линейчатую диаграмму путем установки атрибута Chart.Series в BarSeries. Как можно видеть, привязка возникает в полях Key и Value источника данных.
Листинг 2 Фрагмент кода, показанный в листинге 3, создает коллекцию в форме KeyValuePair и устанавливает свойство ItemsSource атрибута Series диаграммы. Те же данные можно использовать для других типов диаграмм.
Листинг 3 Результат показан на рисунке 7. Рисунок 7 Гистограмма Фрагмент кода, показанный в листинге 4, создает гистограмму путем установки атрибута Chart.Series в ColumnSeries. Как можно видеть, привязка возникает в полях Key и Value источника данных.
Листинг 4 Фрагмент кода, показанный в листинге 5, создает коллекцию в форме KeyValuePair и устанавливает свойство ItemsSource атрибута Series диаграммы. Те же данные можно использовать для других типов диаграмм.
Листинг 5 Результат показан на рисунке 8. Рисунок 8 Круговая диаграмма Фрагмент кода, показанный в листинге 6, создает круговую диаграмму путем установки атрибута Chart.Series в PieSeries. Как можно видеть, привязка возникает в полях Key и Value источника данных.
Листинг 6 Фрагмент кода, показанный в листинге 7, создает коллекцию в форме KeyValuePair и устанавливает свойство ItemsSource атрибута Series диаграммы. Те же данные можно использовать для других типов диаграмм.
Листинг 7 Результат показан на рисунке 9. Рисунок 9 График Фрагмент кода, показанный в листинге 8, создает график путем установки атрибута Chart.Series в LineSeries. Как можно видеть, привязка возникает в полях Key и Value источника данных.
Листинг 8 Фрагмент кода, показанный в листинге 9, создает коллекцию в форме KeyValuePair и устанавливает свойство ItemsSource атрибута Series диаграммы. Те же данные можно использовать для других типов диаграмм.
Листинг 9 Результат показан на рисунке 10. Рисунок 10 Точечная диаграмма Фрагмент кода, показанный в листинге 9, создает точечную диаграмму путем установки атрибута Chart.Series в ScatterSeries. Как можно видеть, привязка возникает в полях Key и Value источника данных.
Листинг 9 Фрагмент кода, показанный в листинге 10, создает коллекцию в форме KeyValuePair и устанавливает свойство ItemsSource атрибута Series диаграммы. Те же данные можно использовать для других типов диаграмм.
Листинг 10 Результат показан на рисунке 11. Рисунок 11 Диаграмма с областями Фрагмент кода, показанный в листинге 11, создает диаграмму с областями путем установки атрибута Chart.Series в AreaSeries. Как можно видеть, привязка возникает в полях Key и Value источника данных.
Листинг 11 Фрагмент кода, показанный в листинге 12, создает коллекцию в форме KeyValuePair и устанавливает свойство ItemsSource атрибута Series диаграммы. Те же данные можно использовать для других типов диаграмм.
Листинг 12 Результат показан на рисунке 12. Рисунок 12 Оси диаграммы Свойство Axes элемента Chart используется для добавления в диаграмму осей x и y. Фрагмент кода, приведенный в листинге 13, добавляет в диаграмму линейную ось со свойствами ориентации, заголовка, шрифта и другими.
Листинг 13 Новый результат показан на рисунке 13, где можно видеть заголовок с левой стороны диаграммы и форматирование. Рисунок 13 Создание диаграммы с областями из коллекции Теперь приступим к созданию диаграммы с областями из коллекции. У меня есть класс Fruit, показанный в листинге 14. В нем имеется два элемента, Name и Share.
Листинг 14 В листинге 15 показан класс коллекции Fruit, который добавляет некоторые объекты Fruit в конструктор.
Листинг 15 Теперь в нашем коде XAML я создаю ресурс с именем FruitCollection и привязываю его к AreaSeries с помощью свойства ItemsSource, как показано в листинге 16.
Листинг 16 Код XAML для привязки FruitCollection к AreaSeries приведен в листинге 17.
Листинг 17 Теперь просто построим и выполним проект. Новый результат показан на рисунке 14. Рисунок 14 Выводы В этом руководстве показывается, как с помощью набора средств WPF можно создавать разные диаграммы, в том числе линейчатые диаграммы, гистограммы, круговые диаграммы, диаграммы с областями, точечные диаграммы и графики. |
Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.