Поделиться через


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
Наследование
Object IInspectable DependencyObject ImageSource SvgImageSource
Атрибуты

Примеры

Ниже приведен пример того, как задать источник изображения в 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

Всегда возвращает в null приложении Windows App SDK. Вместо этого используйте DispatcherQueue .

(Унаследовано от DependencyObject)
DispatcherQueue

Возвращает объект , DispatcherQueue с которым связан этот объект. представляет DispatcherQueue средство, которое может получить доступ к в потоке DependencyObject пользовательского интерфейса, даже если код инициируется потоком, не относящегося к пользовательскому интерфейсу.

(Унаследовано от DependencyObject)
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.

Применяется к