2009-10-31 6 views
1

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

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

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

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

ответ

2

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

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

+0

Действительно, набор инструментальных средств включает в себя диаграмму с реалистичной реализацией, которую вы, несомненно, можете переделать в соответствии с вашими потребностями, если это не совсем подходит. Тем не менее, диаграммы присутствуют только в предварительном выпуске, если это вас беспокоит. – Egor

+0

Yup; почти всегда возможно, чтобы restyle/template управлял другим, но всегда ли это лучший способ сделать это? Если вам нужен радикальный контроль радара с лодками, похоже, что использование стиля ListBox будет намного сложнее, чем создание настраиваемого элемента управления. –

1

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

Смежные вопросы