Создайте свою среду для разработки (IDE) за 10 минут

четверг, 8 октября 2009, Jorgen Bumajnikov

Звучит красиво и интригующе [:)]

Вот то что у нас должно получится:

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

AvalonEdit

AvalonEdit - основаный на WPF редактор используемый в SharpDevelop 4.x. В использовании AvalonEdit  очень похож на обычный TextBox!

Для загрузки документа ....

И на конец, подсветка синтаксиса:

AvalonEdit поддерживает ASP.NET, Boo, Coco/R grammars, C++, C#, HTML, Java, JavaScript, Patch files, PHP, TeX, VB, XML.

Если вам интерестно узнать подробнее об этом елементе управлеения то нужно почитать статью Daniel Grunwald’s на CodeProject. (Так же будет полезно почитать Document и Rendering которые были удалены из оригинальной статьи.)

AvalonDock

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

DockingManager

DockingManager ответственен за расстановку своего контента (панели и т.д.) и для выполнения их правильного стыкования.

ResizingPanel

ResizingPanel это унаследованый от Panel классс который призван организовать свой контент (панели и т.д.) по направлению (как Orientation в StackPanel классе). Между двумя последовательными ResizingPanel елементами автоматически вставляется ResizingPanelSplitter. Потянув за сплиттер можно изменять размер ResizingPanel елемента.

DockablePane & DocumentPane

DockablePane может содержать только DockableContents и может быть перетянут и перестыкован к границе контейнера DockingManager. В добавок DockablePane может быть автоспрятан ("отстыкован")  или всплывающим если разположен в сплыващем окне. DocumentPane может содержать как DocumentContents так и DockableContents, но он не может быть перемещен.

Детальнее в отличном AvalonDock Tutorial.

ОК, правда это еще далеко не IDE, но описаные контролы были использованы при написании OpenSource продукта SharpDevelop.

Enjoy [:)]

З.Ы.

оригинал статьи Create your own IDE in 10 minutes.


Ищите нас в интернетах!

Комментарии

Свежие вакансии