SvgImageSource Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Предоставляет исходный объект для свойств, использующих источник SVG. Вы можете определить SvgImageSource с помощью универсального идентификатора ресурса (URI), который ссылается на SVG-файл, или путем вызова SetSourceAsync(IRandomAccessStream) и предоставления потока.
/// [Windows.Foundation.Metadata.ContractVersion(Microsoft.UI.Xaml.WinUIContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class SvgImageSource : ImageSource
[Windows.Foundation.Metadata.ContractVersion(typeof(Microsoft.UI.Xaml.WinUIContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public class SvgImageSource : ImageSource
Public Class SvgImageSource
Inherits ImageSource
- Наследование
- Атрибуты
Примеры
Ниже приведен пример того, как задать источник изображения в SVG-файл. Так как высота или ширина явно не указаны, макет приложения определяет соответствующий размер для декодированного SVG.
<Image Source="Assets/mysvg.svg"/>
Комментарии
SvgImageSource позволяет использовать источник SVG для отображения с помощью ImageBrush или непосредственно в элементе управления Image . SvgImageSource поддерживает безопасный статический режим из спецификации SVG и не поддерживает анимацию или взаимодействие. API Direct2D предоставляет базовую поддержку отрисовки SVG. Дополнительные сведения о поддержке конкретных элементов SVG и атрибутов см. в разделе Поддержка SVG. Дополнительные сведения о форматах и использовании универсального кода ресурса (URI) для доступа к исходным файлам изображений, поступающим из ресурсов приложения, см. в разделе Image и ImageBrush.
SvgImageSource представляет абстракцию, так что источник SVG можно задать асинхронно, но при этом ссылаться в разметке XAML как значение свойства или в коде как объект, который не использует ожидающий синтаксис. При создании объекта SvgImageSource в коде он изначально не имеет допустимого источника. Затем следует задать его источник с помощью одного из следующих методов:
- Используйте конструктор SvgImageSource(Uri), а не конструктор по умолчанию. Хотя это конструктор, его можно считать неявным асинхронным поведением: SvgImageSource не будет готов к использованию, пока он не вызовет событие Opened , указывающее на успешную асинхронную операцию установки источника.
- Задайте свойство UriSource . Как и конструктор Uri , это действие является неявно асинхронным, и SvgImageSource не будет готов к использованию, пока не вызовет событие Opened .
- Используйте SetSourceAsync(IRandomAccessStream). Этот метод является явно асинхронным. Свойства, в которых можно использовать SvgImageSource, например Source, предназначены для этого асинхронного поведения и не будут вызывать исключения, если они заданы с помощью SvgImageSource, у которого еще нет полного источника. Вместо обработки исключений следует обрабатывать события Open или OpenFailed непосредственно в SvgImageSource или в элементе управления, использующем источник (если эти события доступны в классе элемента управления).
Open и OpenFailed являются взаимоисключающими. Одно или другое событие всегда возникает, когда для объекта SvgImageSource задано или сброшено исходное значение.
Определение размера
В зависимости от предполагаемого варианта использования можно указать размер SvgImageSource несколькими способами:
- Используйте свойства RasterizePixelHeight и RasterizePixelWidth , чтобы указать явную высоту и ширину в логических пикселях для декодирования источника SVG.
- Если не указать RasterizePixelHeight или RasterizePixelWidth, макет приложения будет определять размер декодирования, сохраняя при этом пропорции. Если размер не может быть определен из макета приложения, то источник SVG будет декодирован до максимального размера окна.
Совместимость версий
Класс SvgImageSource недоступен до Windows 10 версии 1703. Если параметр "минимальная версия платформы" вашего приложения в Microsoft Visual Studio меньше значения "введенной версии", показанной в блоке "Требования" далее на этой странице, вы не сможете использовать SvgImageSource. Дополнительные сведения см. в разделе Адаптивный к версии код.
Чтобы избежать исключений при запуске приложения в предыдущих версиях Windows 10, не устанавливайте это свойство в XAML и не используйте его без выполнения проверка среды выполнения. В этом примере показано, как использовать класс ApiInformation для проверка наличия этого класса перед его использованием.
Конструкторы
SvgImageSource() |
Инициализирует новый экземпляр класса SvgImageSource . |
SvgImageSource(Uri) |
Инициализирует новый экземпляр класса SvgImageSource , используя предоставленный универсальный код ресурса (URI). |
Свойства
Dispatcher |
Всегда возвращает в |
DispatcherQueue |
Возвращает объект , |
RasterizePixelHeight |
Возвращает или задает высоту, используемую для операций растеризации SVG. |
RasterizePixelHeightProperty |
Определяет свойство зависимости RasterizePixelHeight . |
RasterizePixelWidth |
Возвращает или задает ширину, используемую для операций растеризации SVG. |
RasterizePixelWidthProperty |
Определяет свойство зависимости RasterizePixelWidth . |
UriSource |
Возвращает или задает универсальный код ресурса (URI) исходного файла SVG, создающего этот объект SvgImageSource. |
UriSourceProperty |
Определяет свойство зависимости UriSource . |
Методы
ClearValue(DependencyProperty) |
Очищает локальное значение свойства зависимостей. (Унаследовано от DependencyObject) |
GetAnimationBaseValue(DependencyProperty) |
Возвращает любое базовое значение, установленное для свойства зависимостей, которое применяется в случаях, когда анимация не активна. (Унаследовано от DependencyObject) |
GetValue(DependencyProperty) |
Возвращает текущее действующее значение свойства зависимостей из DependencyObject. (Унаследовано от DependencyObject) |
ReadLocalValue(DependencyProperty) |
Возвращает локальное значение свойства зависимостей, если задано локальное значение. (Унаследовано от DependencyObject) |
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback) |
Регистрирует функцию уведомления для прослушивания изменений определенного DependencyProperty в этом экземпляре DependencyObject . (Унаследовано от DependencyObject) |
SetSourceAsync(IRandomAccessStream) |
Задает исходный SVG для SvgImageSource путем доступа к потоку и асинхронной обработки результата. |
SetValue(DependencyProperty, Object) |
Задает локальное значение свойства зависимостей для Объекта DependencyObject. (Унаследовано от DependencyObject) |
UnregisterPropertyChangedCallback(DependencyProperty, Int64) |
Отменяет уведомление об изменениях, которое было ранее зарегистрировано путем вызова Метода RegisterPropertyChangedCallback. (Унаследовано от DependencyObject) |
События
Opened |
Происходит при загрузке и декодировании источника SVG без сбоев. |
OpenFailed |
Возникает при возникновении ошибки, связанной с извлечением ИЛИ форматом SVG. |