Когда я рассмотрел использование SVG в своих приложениях WPF, я обнаружил, что есть пара пакетов, которые можно добавить для обеспечения этой функциональности, но в конце концов я использовал SVG, которые я конвертировал в XAML, что позволитмасштабировать в приложениях WPF таким же образом, как SVG-изображение может масштабироваться в браузерах и т.п.Если у вас есть доступ к коду SVG (который выглядит так, как у вас), то это может быть хорошим решением для вас.
Вот шаги, которые я использую для достижения этой цели:
Преобразование SVG в XAML Я предпочитаю использовать Inkscape для следующих шагов:
- Открыть SVG в редакторе изображений (например, Inkscape).Редактор должен поддерживать открытие SVG и сохранение SVG в виде файла XAML.
- В редакторе сохраните файл как XAML.Файл должен быть сохранен как совместимый с Silverlight, если есть возможность выбора.Закройте редактор изображений.
- Если необходимо изменить цвет, откройте файл в текстовом редакторе (например, Notepad ++, Visual Studio) и найдите любые пути со значением цвета (ищите что-то вроде «fill =« #000000 ”') и измените его на желаемое значение шестнадцатеричного цвета.Сохраните файл и закройте текстовый редактор, когда закончите.
Использование изображения XAML в проекте WPF
- Щелкните правой кнопкой мыши папку ресурсов на изображениидолжен храниться в (например, \ Resources \ Images), выберите опцию для добавления существующего файла.Убедитесь, что тип выбора файлов включает файлы XAML.Перейдите к используемому файлу и добавьте его.
- Откройте панель свойств в Visual Studio (щелкните файл правой кнопкой мыши и выберите параметр «Свойства»).В разделе «Дополнительно» на панели «Свойства» установите для параметра «Действие построения» значение «Ресурс», а для параметра «Копировать в выходной каталог» - «Не копировать».
Изображение теперь можно использовать, установивисточник элемента для отображения изображения (например, фрейма) по пути к ресурсу (например, «/resources/images/.xaml»).Это может быть установлено либо напрямую, либо через привязку.
Пример кода WPF / XAML для отображения изображения XAML В следующем коде показан пример того, как отображать изображение XAML, добавленное с помощью описанных выше шагов.Этот код масштабирует изображение, чтобы заполнить контейнер, к которому оно добавлено.Источник изображения предоставляется через привязку, используемую для источника элемента Frame.Это может быть заменено строкой пути изображения (что указывается в значении привязки).
<Viewbox Stretch="Uniform"
Margin="4,4"
VerticalAlignment="Center">
<Frame Source="{Binding ImageSource}"
NavigationUIVisibility="Hidden"/>
</Viewbox>
Пример строки пути:
/resources/images/<file-name>.xaml
Если изображение находится в DLL и используется в той же DLL, строка пути должна включать дополнительную информацию в следующем формате:
/<AssemblyName>;component/resources/images/<file-name>.xaml