Я загрузил серию изображений SVG, создав и сохранив CanvasSvgDocument для каждого, и используя метод LoadAsync () для загрузки SVG:
nextSvg = CanvasSvgDocument(resourceCreator.Device());
auto fileStream = co_await nextFile.OpenReadAsync();
co_await nextSvg.LoadAsync(resourceCreator.Device(),fileStream);
Это похоже на загрузку svg, но когда я использую этот сохраненный svg в сеансе рисования, в CanvasControl ничего не появляется. Другие предметы рисуются отлично: формы, линии и т. Д. - только не svgs:
session.DrawSvg(m_svg, boxSize, top, left);
Пытаясь обнаружить проблему, я пытался использовать GetXml () в документе svg в надежде показать мне его содержимое. Результатом является сокращенное SVG без информации о чертеже. Я предоставляю это здесь в случае, если это подсказка:
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"></svg>
Возможно, это все, что должен вернуть GetXml ()?
Я успешно нарисовал svgs, если они загружены как источники изображений; Полученное растровое изображение работает. Но возможно ли, что session.DrawSvg () просто еще не полностью реализован в Win2D? Я бы предпочел визуализировать svg напрямую, если это возможно.
[Update] p.s. Svgs - это svgs версии 1.1, конвертированные из pdf одним из сервисов онлайн-конвертации. Как я уже упоминал, они хорошо отображаются при открытии в Edge или других браузерах.
[Update2] Думая, что, возможно, в svgs есть что-то, что не нравится Win2D, я попытался создать простое, используя в качестве модели онлайн-пример - он просто имеет прямоугольник и круг, как показано ниже. Но это также не рисует:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 140"
preserveAspectRatio="xMidYMid meet">
<title>Scalable Vector Graphics (SVG) Demo</title>
<circle cx="100" cy="100" r="50" stroke="#000" stroke-width="1" fill="#ccc" />
<rect x="200" y="50" width="250" height="100" rx="5" ry="5"
stroke="#000" stroke-width="1" fill="#ccc" />
</svg>
[Update] Похоже, что проблема заключается в том, как svg читается из файла хранилища. Я опубликую свой собственный ответ, как только мне будет достаточно, чтобы он мог кому-нибудь пригодиться.