Создание пользовательского элемента управления WPF - PullRequest
1 голос
/ 31 октября 2009

В настоящее время я создаю пользовательский интерфейс с использованием WPF и хотел бы отобразить круговую диаграмму в моем окне. Насколько я вижу, это будет включать создание пользовательского элемента управления - это не тот сценарий, в котором будет достаточно применения стилей или шаблонов к существующему элементу управления. Я прочитал несколько статей о пользовательских элементах управления, и все из них, которые предоставляют подробное описание, похоже, используют очень разные методы.

Различные авторы получают свои собственные классы элементов управления, среди прочего, из Control, UserControl или Canvas. Рендеринг выполняется в нескольких местах, в том числе в OnRender и OnApplyTemplate, используя один из нескольких различных методов: DrawingVisual, GeometryDrawing или Shape. Кажется, что существует так много разных способов просто нанести несколько фигур на экран, что я теперь очень растерялся.

Все, чего я хочу добиться, - это простая круговая диаграмма, показывающая событие, которое вызывается при нажатии на один из клиньев круговой диаграммы.

Есть ли общепринятый "лучший" способ сделать это?

Ответы [ 2 ]

2 голосов
/ 31 октября 2009

WPF Toolkit включает элемент управления Chart. Поскольку исходный код также доступен, может быть, вы можете взглянуть на него, чтобы вдохновиться. Я мало что изучал, но, возможно, то, что вы ищете, уже реализовано.

Что касается пользовательских элементов управления в WPF в целом, я рекомендую вам получить копию WPF Control Development Unleashed . Я на полпути через это, и я должен сказать, что это очень хорошо. Он объясняет все о создании ваших собственных элементов управления и о том, как выбрать класс, из которого вы должны извлечь. Автор также объясняет, когда не , чтобы создать свой собственный элемент управления, и делает большую работу по превращению наиболее распространенного элемента управления WPF, такого как Slider или ListBox, в красивый визуальный элемент управления, который не похож на оригинал. Например, он берет ListBox и превращает его в экран радара, показывающий правильное расположение лодок и подводных лодок, даже не был опущен широкий конус. Я подозреваю, что то, что вы пытаетесь достичь, может быть сделано с помощью такого же трюка.

1 голос
/ 31 октября 2009

Оформить заказ wpf инструментарий на codeplex. У них есть элементы управления диаграммой на дорожной карте.

...