Главная » Silverlight » Экспорт графики в XAML

0

Графику для Silverlight не обязательно создавать, вводя код разметки вручную. Вместо этого можно применять специальные графические инструменты, создающие векторные изображения, а затем экспортировать их в разметку XAML. Обычно экс­портированный таким способом документ XAML содержит элемент Canvas, в котором размещены элементы фигур. Экспортированный элемент Canvas можно вставить в су­ществующую разметку страницы Silverlight, чтобы отобразить его на экране.

Многие мощные графические программы не содержат встроенной поддержки экс­порта в формат XAML, тем не менее результаты их работы тоже можно использовать в Silverlight. В следующих разделах рассматриваются способы извлечения векторной графики практически из любого приложения.

Программа Expression Design

Разработанная компанией Microsoft графическая программа Expression Design со­держит встроенные средства экспорта в формат XAML. С ее помощью можно открывать файлы во многих векторных форматах, включая формат Adobe Illustrator (, ai), а затем экспортировать их в XAML.

Для экспорта документа в XAML выполните в окне Expression Design следующие операции.

1.     Выберите в главном меню команду FileExport (Файл Экспорт).

2.     В диалоговом окне Export щелкните на раскрывающемся списке Save As Type {Сохранить с типом) и выберите элемент XAML. Введите имя файла и щелкните на кнопке Save (Сохранить). Активизируется диалоговое окно Export XAML, по­казанное на рис. 7.20. В нем приведено экспортируемое изображение и окно предварительного просмотра содержимого XAML (чтобы увидеть разметку XAML, нужно щелкнуть на корешке вкладки XAML).

3.     В группе Document format (Формат документа) установите переключатель Silver- light, чтобы файл XAML был совместим с Silverlight. Этим вы отменяете средства, поддерживаемые платформой WPF, но не поддерживаемые платформой Silverlight.

4.     Щелкните на кнопке Export, чтобы сохранить файл.

Рис. 8.20. Создание файла XAML, совместимого с Silverlight

Примечание. В режиме экспорта, заданном с помощью переключателя Canvas (Холст), создается разметка XAML, работающая в приложениях Silverlight с минимальными изменениями, однако в большинстве случаев все же необходимо вручную удалить несколько неподдерживаемых атрибутов. При установленном переключателе Resource Dictionary (Словарь ресурсов) создается файл XAML, несовместимый с Silverlight. Графика сохраняется в коллекции ресурсов DrawingBrush, а не контейнере Canvas. Коллекция ресурсов DrawingBrush эффективна в WPF, но бесполезна в Silverlight, потому что в Silverlight нет классов Drawing и DrawingBrush.

Сгенерированный файл XAML содержит элемент корневого уровня Canvas. Внутри Canvas расположено несколько десятков элементов Path, каждый из которых позицио­нирован в заданном месте контейнера Canvas. Кроме того, каждый элемент обладает собственными данными и кистями.

Чтобы воспроизвести графику, созданную во внешней программе, весь блок раз­метки можно вырезать и вставить на любую страницу Silverlight. Однако такой подход неудобен, если страница содержит большой объем сложной графики или если нужно повторно использовать графику в разных местах. При использовании метода выреза­ния и вставки разметка загромождена продублированными разделами. Ее будет тяжело изменять и отлаживать.

В идеале лучше было бы сохранить в файле Арр. xaml часто используемую графи­ку в виде коллекции ресурсов. К сожалению, такой способ невозможен, потому что в Silverlight нельзя хранить и повторно использовать укомплектованные элементы (напри­мер, элемент Canvas с графическим содержимым). Платформа Silverlight не предостав­ляет средств определения рисунков без элементов. Для решения этой проблемы обычно создают отдельный элемент UserControl для каждой часто используемой фигуры, а за­тем при необходимости вставляют его на разные страницы. Эта методика рассматри­вается в главе 9 на примере игры с бросанием бомб, в которой элементы UserControl используются для создания бомб и логотипов.

Преобразование форматов

Программа Expression Design — лишь один из многих инструментов разработки, поддерживающих формат XAML. Кроме нее, существуют многочисленные инструмен­ты преобразования и надстройки, предназначенные для экспорта из наиболее популяр­ных графических форматов. Майк Суонсон (Mike Swanson) поддерживает страницу www.

blogs .msdn . com/mswanson/articles/WPFToolsAndControls . aspx, на которой приведены ссылки на ряд бесплатных преобразователей форматов, включая следующие:

•   преобразователь формата Adobe Illustrator (. аі) в формат XAML;

•   преобразователь Flash (. swf) в XAML;

•   надстройка Visio, предназначенная для экспорта в XAML.

В Интернете легко найти множество других бесплатных преобразователей в формат XAML. Однако многие из них не обязательно создают разметку XAML, полностью совме­стимую с Silverlight. В большинстве случаев неподдерживаемые средства сгенерирован­ной разметки несложно исправить вручную.

Источник: Мак-Дональд, Мэтью. Silverlight 3 с примерами на С# для профессионалов. : Пер. с англ. —- М. : ООО «И.Д. Вильяме», 2010. — 656 с. : ил. — Парал. тит. англ.

По теме:

  • Комментарии