Блог Сергея Байдачного

Мой блог о технологиях

Введение в SilverLight 4: RechTextArea элемент управления

3 комментария

Описывая очередную возможность 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>

В результате на экране отобразится следующий контент:

clip_image002

Как видно, 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), но много нужно будет сделать самостоятельно.

Реклама

Written by Sergiy Baydachnyy

11.01.2010 в 07:19

Опубликовано в SilverLight

Tagged with

комментария 3

Subscribe to comments with RSS.

  1. […] Читать дальше в моем блоге О технологиях Опубліковані Monday, January 11, 2010 7:22 AM від Sergiy Baydachnyy […]

  2. Где найти блог «О технологиях»?

    Wolf

    21.01.2010 at 20:41


Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

%d такие блоггеры, как: