XML-редактор Silverlight / подсветка синтаксиса

Мне нужен элемент управления текстового редактора Silverlight, который обеспечивает подсветку синтаксиса XML. Я нашел несколько ответов в Winforms или WPF, например здесь, в Stackoverflow, но мне не удалось преобразовать их в Silverlight. Тот факт, что в Silverlight отсутствует System.Drawing, вероятно, является большой проблемой.

Единственный текстовый редактор, который я нашел для Silverlight, - это RichTextEdit на Codeplex, но я не думаю, что это подходящая база для подсветки синтаксиса в реальном времени.

Кто-нибудь слышал о таком элементе управления или может подсказать, как его создать? Большое спасибо,

Ромен


person Romain    schedule 04.01.2009    source источник


Ответы (4)


Наконец-то я нашел тот контроль, который искал! SL2TextBoxWsSynParser

РЕДАКТИРОВАТЬ: этот элемент управления, похоже, больше не обновляется, но появился новый элемент управления подсветкой синтаксиса:

Он доступен здесь и используется на веб-сайте CoderProof.

person Romain    schedule 05.02.2009
comment
Обновленную версию можно найти здесь: vladhorby.com/blog/post/2010/11/01/. Теперь он поддерживает различные языки (C #, VB.NET, XML и т. Д.) - person vladhorby; 02.11.2010

Actipro Software имеет компонент подсветки синтаксиса для Winforms, WPF и Silverlight:

http://www.actiprosoftware.com/

person chadbr    schedule 17.07.2010

Я подумал, что это интересный вопрос, но у тебя нет ответа.

Я не знаю о существующем контроле.

Я создал элемент управления для редактирования XHTML, но он тоже использует System.Drawing, а не WPF (и, следовательно, не для Silverlight).

WPF, вероятно, не хуже System.Drawing, но я этого не знаю.

Подсказки о том, как я это построил:

  • Определите DOM (вам может подойти стандартный System.Xml.XmlDocument)
  • Анализируйте документ для создания экземпляра модели DOM
  • Определите пользовательский элемент управления (с полосами прокрутки)
  • Передайте экземпляр DOM пользовательскому элементу управления
  • В методе управления 'paint' нарисуйте видимую часть DOM
  • Реализовать поддержку нажатия клавиш и мыши.

Если вам действительно нужны подсказки о том, как его построить, спросите что-нибудь более конкретное.

person ChrisW    schedule 07.01.2009

Привет и спасибо за ответ!

К сожалению, хотя WPF имеет возможности рисования, Silverlight запускает очень ограниченный набор CLR. Раскрашивание пользовательского элемента управления выглядит довольно сложной задачей.

Однако раньше это делалось с помощью редактора форматированного текста для Silverlight. Я посмотрю, удастся ли мне использовать аналогичные методы для визуализации XML-документа.

Один вопрос: достаточно ли быстр пользовательский элемент управления, чтобы визуализировать DOM на лету, когда пользователь вносит изменения?

person Romain    schedule 19.01.2009