Я думаю, что вы хотите, чтобы элементы Glyphs вместо Paths.
Проблема в том, что элементы Glyphs требуют, чтобы вы указали URI файла шрифта. Кроме того, элементы Glyphs ссылаются на глифы по их index в файл шрифта (может случиться так, что преобразователь, который генерирует элементы Glyphs - как Microsoft XPS Document Writer - использует индексы в файлах подмножеств шрифта: поэтому эти индексы могут не быть правильными индексами для тех же символов, которые определены в исходном файле шрифта). Мне удалось «решить» эту проблему двумя способами с помощью моих собственных инструментов преобразования PDF в XAML.
1. подход : встроить файл поднабора шрифтов, закодированный в BASE64, в сгенерированный код XAML и заставить приложение реализовать класс, который при загрузке извлекает и декодирует встроенный файл поднабора шрифтов во временное местоположение и передает действительный URI в этот временный файл обратно в загрузчик XAML.
или 2. подход : большинство файлов шрифтов уже установлено вместе с моим приложением и, опять же, добавляется некоторая поддержка моим приложением, которая заменяет имя шрифта на URI в файле установленного шрифта при загрузке кода XAML. Проблема с этим вторым подходом состоит в том, что индексы глифа должны быть правильно сопоставлены с установленным файлом шрифта, что может быть не совсем простым делом. (Вы можете найти ссылку на файл примера, который был сгенерирован для этого способа загрузки в моем блоге: в частности, взгляните на файл truncatedcone-xaml.txt )
Вкратце: для обоих решений требуется специальный конвертер PDF в XAML и поддержка со стороны приложения загрузки. Причина, по которой я хотел сделать это таким образом, вместо того, чтобы просто преобразовывать свои PDF-файлы в только пути, заключается в том, что мое приложение является общей доской: поэтому я хочу, чтобы моя векторная графика была как можно меньше . (Преобразование в пути в большинстве случаев приводит к взрыву кода XAML в 10 и более раз.)
Я рассматриваю реализацию третьего подхода : это будет заключаться в создании схемы для каждого глифа, который используется только один раз , а затем добавлении поддержки моим приложением для преобразования и Расположите эти контуры глифов таким образом, чтобы они были аналогичны действиям элементов Glyph, которые в противном случае пришлось бы генерировать. Преимущество будет состоять в том, что сгенерированный XAML будет все еще относительно небольшим (сравнимым со вторым подходом, описанным выше) без необходимости установки соответствующих файлов шрифтов вместе с приложением и без необходимости сопоставлять индексы глифов из файла поднабора с установленным шрифтом. файл. Причина, по которой я еще не пытался реализовать это всерьез, двояка: во-первых, мой нынешний (второй) подход уже очень хорошо работает для того, что мне сейчас нужно; во-вторых, при использовании этого третьего подхода могут возникнуть проблемы с производительностью, связанные с загрузкой и / или рендерингом.