Windows forms нет компонента chart
Платные компоненты
- Grid and Data Editors
- Ribbon, Toolbar-Menu
- OLAP Data Mining Control
- Calendar / Scheduler
- Reporting Tool
- TreeView-Grid Hybrid
- Gauges and Dashboards
- Rich Text Editor
- Wizard Control
- Property Grid
- Charting Control
- Layout Manager
- Navigation Pane
- Data Editors and Controls
- Printing-Exporting Library
- Spell Checker
- Reporting Tool
- Charting Control
- Grid and Data Editors
- Filter Editor
- Calendar / Scheduler
- HTML Editor
- Gauges and Dashboards
- TreeView-Grid Hybrid
- Data Editors
- OLAP Data Mining Control
- Spell Checker
- Cloud
- List View
- Menu
- Navigation Pane
- News List
- Popup Window
- Site Map
- Tab Control
- Title Index
- Upload Control
- Utility Components
Полный же список следующий:
Компоненты от компании Dundas предназначены для визуализации данных:
- Dundas Chart
- Dundas Gauge
- Dundas Map
- Dundas Calendar
Obout
- TreeView
- Grid
- Editor
- Spell checker
- Calendar
- Easy menu
- Combobox
- Slide menu
- AJAXPage
- Scheduler
- Context menu (with Easy menu)
- TabStrip (with Easy menu)
- Slide Panel (with Slide menu)
- Two colors menu
- Splitter
- Super button
- Tree_DB
- Show
- Flyout
- Window
- FileUploadProgress
- ColorPicker
- Toolbar (with Supper button)
- Autosuggest (with Combobox)
- Multilevel Combobox (with Combobox)
- State Selector (with Combobox)
Другие компоненты
Бесплатные компоненты
После установки Chart Controls Add-on for Visual Studio 2008 (именно в таком порядке) в Toolbox появится новый контрол Chart.
Microsoft Chart control is based on Dundas Chart source code version 5.5. В Visual Studio 2010 этот контрол входит в поставку.
- ExtendedDropDownList
- LiveGrid
- FancyUpload
- ImageCheckBox
- Rating
- DynamicImage
- CaptchaImage
- GradientButton
Ajax Control Toolkit
- Accordion
- AlwaysVisibleControl
- Animation
- AutoComplete
- Calendar
- CascadingDropDown
- CollapsiblePanel
- ColorPicker
- ComboBox
- ConfirmButton
- DragPanel
- DropDown
- DropShadow
- DynamicPopulate
- FilteredTextBox
- HoverMenu
- HTMLEditor
- ListSearch
- MaskedEdit
- ModalPopup
- MultiHandleSlider
- MutuallyExclusiveCheckBox
- NoBot
- NumericUpDown
- PagingBulletedList
- PasswordStrength
- PopupControl
- Rating
- ReorderList
- ResizableControl
- RoundedCorners
- Slider
- SlideShow
- Tabs
- TextBoxWatermark
- ToggleButton
- UpdatePanelAnimation
- ValidatorCallout
Другие контролы
Если вы не нашли необходимых вам компонентов, советую обратиться на codeplex, где можно с большой вероятностью найти необходимый контрол, например Google Maps Control.
При работе с новой версией WPF 4.0 сталкиваешься с проблемой, а именно: если раньше компонент отрисовки графиков и диаграмм Chart при работе в Blend Studio был доступен на вкладке Controls, то теперь его там по умолчанию нет .Поэтому приходится подключать этот компонент вручную.
Шаг первый. Открываем/создаем проект WPF c помощью Visual Studio 2010
После открытия проекта в VisualStudio 2010 обратите внимание на панель инструментов (которая доступна при открытой главной форме приложения). В ней расположены основные элементы пользовательского интерфейса WPF (Button, CheckBox, ComboBox и др.). Как видим – компонента Chart здесь нет (см. рис. 1).
Шаг второй. Подключаем компонент для отрисовки диаграмм/графиков Chart к панели инструментов ToolBox
Для этого в панели инструментов ToolBox щелкаем правой кнопкой мыши и вызываем контекстное меню. В контекстном меню выбираем пункт «ChooseItems…» (см. рис. 2). После этого появляется диалоговое окно выбора элементов панели инструментов, как показано ниже на рисунке 3.
Выбираем вкладку WPF Components, в списке компонентов находим элемент Chart и помечаем его галочкой. Нажимаем клавишу OK .
Компонент Chart появился в списке ToolBox (рис. 4).
Примечание: не рекомендуется убирать галочки с других элементов, т.к. в этом случае они пропадут из панели ToolBox.
Шаг третий. Добавляем компонент для отрисовки диаграмм/графиков Chart в проект WPF
Для того чтобы добавить элемент Chart в проект, необходимо его перетащить на форму, после чего сохранить проект. Обращаем внимание, что в разделе References добавилась новая ссылкаSystem.Windows.Controls.DataVisualization.Toolkit.
После того, как проект сохранен, можно открыть его в Blend Studio 4.0 для продолжения работы над интерфейсом (при этом Chart уже будет доступен на панели Controls), либо продолжить разработку в Visual Studio 2010.
БлогNot. Chart, примеры в Studio
Chart, примеры в Studio
Компонента Chart (диаграмма) в Visual Studio довольно удобна, хотя для начинающих обычно сложно выбрать из множества её возможностей самые актуальные. К тому же, задокументировано-то всё лишь на MSDN.
Приведу несколько примеров, анализ которых поможет Вам быстро освоить основные приёмы работы с графиками и диаграммами в Visual C++. Все коды проверены в сборке Express 2010.
Пример 1. Добавим на форму компоненту Chart и выведем туда данные
Пример 2. Сделаем красивый Chart программно, можно по нажатию новой кнопки на той же форме
Создаем программно красивый Chart в проекте C++ Windows Forms
Пример 3. Вытащим данные из Chart в TextBox
Пример 4. Сделаем парсер выражений на основе чужого класса - это можно применить для создания полноценного "графопостроителя"
Добавим какой-нибудь не очень сложный парсер, например, класс parser.cpp от Chaos Master.
Кинем файлы parser.cpp и parser.h в папку с кодом (Имя_проекта/Имя_проекта, где находится Form1.h ). В меню скажем Проект - Существующий элемент и добавим файл .cpp (он д.б. в "Файлы исходного кода" Обозревателя решений)
Код выбранного нами парсера старый, так что нам придётся кое-что переделывать, например, строки char * в String ^ и обратно.
Добавим на форму компоненты textBox1 и label1 , напишем демо-код для применения парсера (вызывается по нажатию кнопки):
Возможно, понадобится изменить какие-то ещё мелочи, например, я в файле parser.cpp раскомментарил строку
и изменил в коде exp(1) на exp(1.) - иначе не компилировалось в Studio.
Также ясно, что в начале файла form1.h добавлена строка
Теперь в поле ввода можно писать любые допустимые парсером выражения с переменной x , например, cos(x)+1 , текущее значение переменной x из программы подставится в выражение и его результат динамически подсчитается.
На основе показанных кодов легко сделать, например, программу построения графиков с интерпретацией введённой пользователем функции. Скажем, если выражение для функции с аргументом, обозначенным x , вводится в текстовое поле textBox1 , код построения графика функции в пределах от 0 до 3.14 с шагом, равным 0.1 , будет таким:
P.S. В более новой Studio 2019 пришлось сделать ^f1 вместо f1 и, соответственно, везде f1-> вместо f1.
Заменить фиксированные пределы и шаг на вводимые из формы - элементарно. Вот что вышло для теста:
Пример построения графика на основе парсера функций
Пример 5. Применение разрывов
На форму проекта помещена chart1 со свойством Dock = Fill , построение происходит по загрузке формы.
разрывы по оси y на графике
В данном уроке демонстрируется подключение интерфейса OpenGL и приводится пример создания простого изображения с использованием этой технологии.
1. Создание Приложения WindowsForms / Windows Forms Application
2. Скачиваем библиотеки SharpGl
3. Подключение ссылок
Для подключения существует два пути. Первый: раздел из вкладки Сервис(Tools) в Диспетчер пакетов Nuget (NuGet Package Manager)->Консоль диспетчера пакетов (Package Manager Console)–>Выбрать в качестве Источника пакетов (Package Source) "nuget.org"(можно оставить все)->Ввести Install-Package SharpGL->Ввести Install-Package SharpGL.WinForms.
Второй способ: найти в Обозревателе решений (Solution Explorer) раздел Cссылки (References)->Добавить ссылку (Add reference):
Откроется Менеджер ссылок, необходим Обзор, далее находим у себя в файловой системе папку SharpGL.WinForms, где и лежат требуемые библиотеки SharpGl.dll, SharpGl.SceneGraph.dll, SharpGl.WinForms.dll:
Далее надо проверить в Обозревателе решений, в пункте Ссылки (References), появились ли ссылки SharpGl, SharpGl.SceneGraph, SharpGl.WinForms:
3. Добавление в панель элементов новых элементов
Первый шаг – простой, но не обязательный. Чтобы не добавить элементы в вкладку Общие, сделаем следующее. Свернем все группы элементов, последняя вкладка – Общие - обычно пустая, и если ее открыть, выскакивает надпись, что в данной группе элементов нет. Давайте щелкнем в свободной области панели правой кнопкой мыши и выберем «Добавить вкладку» из выпадающего списка. Создадим новую вкладку элементов, например, «MyOpenGL» – «группу» можно назвать как угодно:
Так как вкладка новая, увидим, что там элементов нет, щелкнем правой кнопкой по полоске с названием вкладки и далее из списка в «Выбрать элементы»:
Во вкладке MyOpenGL должны появиться элементы Указатель (Стандартно), GLColorPicker, OpenGLControl, SceneControl, VertexControl. Новые элементы добавлены и теперь можно наконец-то приступать к разработке.
4. Создание экземпляра OpenGL-формы
Для этого располагаем OpenGLControl на нашу форму и заходим в свойства нового объекта. Для лучшей ориентации рекомендуется использование категорий. Находим в первой же категории SharpGL такие атрибуты:
Dock – позиция нового «контрола» на форме. Введем «Fill», чтобы наш «контрол» занял всю площадь. Также можно из выпадающего списка выбрать «Центр», интуитивно будет понятно, что имеется в виду.
FrameRate – количество кадров, которые будут отрисованы в секунду. По умолчанию там 20, изменим на 30. Однако этот параметр зависит от того, насколько «тяжелое» приложение и FPS может быть и ниже.
OpenGLVersion – версия технологии, которую мы реализовываем – это OpenGL2_1, и она уже задана по умолчанию. На момент создания урока последняя версия – OpenGL4_4.
RenderTrigger – один из контекстов рендеринга, можно выбрать TimerBased – тогда каждый кадр будет отрисовываться на основании времени, т.е. с определенной частотой секунд. Если мы зададим Manual – рендеринг каждого кадра надо будет реализовывать вручную.
Последний, и самый интересный – DrawFPS.
Его используют, если хотят проверить, как работает приложение. Можете сразу перейти к выполнению следующего пункта, но лучше прочитайте его до конца.
Зададим значение атрибута DrawFPS равным True. После запуска проекта получим ошибку типа System.NullReferenceException и следующие:
«Элемент управления Sharp.OpenGL вернул в конструкторе необработанное исключение и был отклонен. Исключение: Ссылка на объект не указывает на экземпляр объекта.»
Это происходит, если предварительно не задать в событиях нашего «контрола» свойство атрибута OpenGLDraw, просто щелкнув мышью по незаполненному полю атрибута. Перейдем из конструктора к коду, для этого можно нажать F7 или на поле формы щелкнуть правой кнопкой мыши и выбрать этот пункт из выпадающего списка. Увидим, что появилась следующая функция – обработчик событий, которая и отрисовывает «контрол»:
Она будет вызываться каждый раз при отрисовке нашего кадра – как в цикле.
Теперь можно запустить проект и он успешно выполнится. Вывод будет состоять из просто черного экрана. На форме в конструкторе будет отображаться текст ошибки:
Это будет оставаться, пока не реализуем пункт 5, и поэтому не стоит обращать внимание. Все же лучше этого не видеть и сделать все сразу правильно.
5. Очистка буфера и создание. Реализация отрисовки
После всех операций при запуске приложения внизу все равно будут отображаться непонятные цифры и символы:
Это происходит, потому что картинка обновляется очень много раз в секунду, но мы ее не очищаем и она заполняет буфер. Устраним это.
Для того, чтобы не использовать полные имена типов, сначала просто пропишем вверху пространства имен:
Там находятся все те функции, которые нам необходимы для работы в этом примере. В коде мы видим Инициализатор формы InitializeComponent(); – ее конструктор, который создан автоматически.
В обработчике событий пропишем следующие команды. Т.к. мы реализуем ООП, то сначала создаем экземпляр окна, в котором будем рисовать, чтобы было удобно обращаться к нашему «контролу».
OpenGL gl = this . openGLControl1 . OpenGL ;
После вызываем функцию очистки буфера и очищаем и цветовой буфер – буфер, в котором хранятся цвета объектов, и буфер глубины – уже с «глубинами» этих объектов с помощью операции «ИЛИ» (|). Дело в том, что без этой операции изображения и цифры просто будут накладываться друг на друга, и мы будем видеть то изображение, которое получили в пункте 4.
Далее возвращаем центр координат в начальную точку и сбрасываем модельно-видовую матрицу, которая реализовывает передвижение, вращение и подобные операции над объектами.
Читайте также: