SvgImageSource Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Предоставляет исходный объект для свойств, использующих источник SVG. Вы можете определить SvgImageSource с помощью универсального кода ресурса (URI), который ссылается на SVG-файл, или путем вызова SetSourceAsync(IRandomAccessStream) и предоставления потока.
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 262144)]
/// [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(Windows.Foundation.UniversalApiContract), 262144)]
[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
- Наследование
- Атрибуты
Требования к Windows
Семейство устройств |
Windows 10 Creators Update (появилось в 10.0.15063.0)
|
API contract |
Windows.Foundation.UniversalApiContract (появилось в v4.0)
|
Примеры
Ниже приведен пример того, как задать для источника image 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 |
Возвращает CoreDispatcher , с которым связан этот объект. CoreDispatcher представляет средство, которое может получить доступ к 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. |