Введение в SilverLight 4: RechTextArea элемент управления
Описывая очередную возможность SilverLight 4 почему-то вспомнился лозунг: «Перед использованием – доработать напильником». Действительно, если смотреть на предыдущие посты, то вроде бы функционал и есть, но чего-то все время не хватает. Есть возможность определить контекстное меню, но инфраструктуры для такого меню нет, хотя инфраструктура есть даже для подсказок, есть возможность работать с буфером обмена, но с жесткими ограничениями, есть возможность отображать HTML, но только для приложений, работающих вне браузера. Не исключением является и новый элемент управления, который сразу попал в стандартную поставку SilverLight 4, это RichTextArea.
Уже пару лет разработчики пытаются добиться элемента управления, который бы позволил отображать форматированный текст. Пусть это будет DOCX, RTF, XPS или PDF, это не столь принципиально. Большинство текстовых редакторов спокойно преобразуют текст из одного формата в другой. Вместо ожидаемого элемента разработчикам предоставили RichTextArea, который действительно способен отображать текст с минимальным форматированием, но в своем, только ему понятном, формате. Давайте посмотрим в каком именно.
Ниже пример элемента RichTextArea, отображающего текст с минимальный форматированием:
<RichTextArea HorizontalAlignment="Left"
Name="rArea" VerticalAlignment="Top"
Height="300" Width="400" >
<Paragraph>
<Bold>This is a bold text</Bold>
<LineBreak></LineBreak>
<Underline>This is an underline text</Underline>
<LineBreak></LineBreak>
<Italic>This is an italic text</Italic>
<LineBreak></LineBreak>
This is a button:
<InlineUIContainer>
<Button Content="Button"></Button>
</InlineUIContainer>
</Paragraph>
</RichTextArea>
В результате на экране отобразится следующий контент:
Как видно, RichTextArea является контейнером для других элементов. Так основным наполнением элемента RichTextArea является набор элементов Paragraph, который описывает параграф текстового документа. В свою очередь параграф может включать набор из следующих элементов:
· Run – задает обычный текст;
· Span – служит для группировки других элементов;
· Bold – определяет жирное начертание символов;
· LineBreak – переход на другую строку;
· Italic – определяет рукописное начертание символов;
· Underline – текст с подчеркиванием;
· HyperLink – создает гиперссылку, которая становится активной только в режиме ReadOnly элемента RichTextArea;
· InlineUIContainer – позволяет вставить в документ любой из элементов, порожденных от UIElement.
Естественно, создавать и заполнять RichTextArea можно и программно. Вот небольшой пример кода:
Bold b = new Bold();
b.Inlines.Add("This is a bold text");
Italic i = new Italic();
i.Inlines.Add("This is an italic text");
Underline u = new Underline();
u.Inlines.Add("This is an underline text");
Paragraph myPar = new Paragraph();
myPar.Inlines.Add(b);
myPar.Inlines.Add(new LineBreak());
myPar.Inlines.Add(i);
myPar.Inlines.Add(new LineBreak());
myPar.Inlines.Add(u);
rArea.Blocks.Add(myPar);
Таким образом, RichTextArea является элементом с минимальным интерфейсом, где всю работу необходимо выполнить программисту. Конечно, Вы можете найти примеры готовых методов, позволяющих сохранить и загрузить содержимое RichTextArea, или реализацию удобного интерфейса пользователя (вот один из примеров: http://channel9.msdn.com/learn/courses/Silverlight4/RichTextEditor), но много нужно будет сделать самостоятельно.
[…] Читать дальше в моем блоге О технологиях Опубліковані Monday, January 11, 2010 7:22 AM від Sergiy Baydachnyy […]
Sergiy Baydachnyy : Введение в SilverLight 4: RechTextArea элемент управления
11.01.2010 at 07:22
Где найти блог «О технологиях»?
Wolf
21.01.2010 at 20:41
?
Sergiy Baydachnyy
22.01.2010 at 07:50