Интеграция экспортированного Visio XAML в приложение Silverlight - PullRequest
1 голос
/ 08 марта 2012

Можно экспортировать рисунки Microsoft Visio как веб-сайт, содержащий содержимое Silverlight.Это описано в этом блоге .

Вывод такого экспорта следующий:

  • xaml_1.xaml (содержит структуру элемента управления)
  • data.xml (содержит все текстовое содержимое, например метки и т. Д.)
  • несколько файлов java-скриптов
  • *. Htm страниц с контейнером Silverlight
  • другие файлы, такие как * .css и изображения

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

Я хотел бы знать, как "объединить" XAML-файл и файл data.xml.и как я могу получить ссылку на элементы кода XAML, чтобы изменить некоторые тексты ...

Ответы [ 2 ]

1 голос
/ 22 марта 2012

В связанном файле xaml js (например, xaml_1.js) есть функция handleMouseUp, которая считывает идентификатор формы из (name) строки (XAML), а затем вызывает OnShapeClick в frameset.js.Этот метод, который является общим для всех типов вывода на основе js Сохранить как веб, затем вызывает другие методы для заполнения таблицы сведений или получения гиперссылок, найденных в data.xml.Если вы посмотрите на функцию FindShapeXML в frameset.js, вы увидите, что она получает соответствующие данные, основанные на идентификаторах страницы и формы (обратите внимание, что идентификаторы формы уникальны для страницы в соответствии с самой Visio).

С точки зрения создания текста с привязкой к данным или динамической формы, одним из обходных путей для проблемы глифов, которую подчеркивает @slfan, является предотвращение вывода текста.Например, перед запуском «Сохранить как веб» в Visio вы можете перебрать все фигуры и установить для их ячейки HideText ShapeSheet значение true.Это предотвратит создание всех глифов xaml, и вы по-прежнему будете иметь доступ к текстовой строке в data.xml.Я думаю, что тогда вы не выиграете от правильного масштабирования шрифта, но это зависит от вашего сценария.Если было действительно важно правильно настроить масштаб, вы могли бы проанализировать атрибут RenderTransform (который описан в синтаксисе атрибута, а не в синтаксисе элемента свойства) элементов глифа.

Глифы есть (я предполагаю)потому что он отражает работу Visio в приложении, т. е. в Visio вы можете выбрать отдельные символы в тексте фигуры и применять разные шрифты и форматирование, но если вам это не нужно, у меня будет соблазн отказаться от коллекции глифов и просто использоватьTextBlock, как предлагает @slfan.

0 голосов
/ 21 марта 2012

Я думаю, вам нужно немного настроить сгенерированный XAML.К сожалению, Visio генерирует глифы для каждого символа.Если вы хотите изменить текст во время выполнения, вам придется удалить эти глифы и добавить необходимые элементы управления (например, TextBlock).

Вы можете загрузить XAML в Silverlight с помощью XamlReader.Load.Хорошее описание вы найдете здесь: http://blogs.silverlight.net/blogs/msnow/archive/2008/10/09/silverlight-tip-of-the-day-60-how-to-load-a-control-straight-from-xaml.aspx.

Все файлы JavaScript и HTML, которые вы можете игнорировать, - XML-файл, который вам необходим для идентификации ваших элементов управления.Идентификаторы в XML ссылаются на соответствующие элементы в XAML-файле.

...