SvgImageSource 类

定义

为使用可缩放矢量图形 (SVG) 源的属性提供源对象。 可以使用引用 SVG 文件的统一资源标识符 (URI) ,或通过调用 SetSourceAsync (IRandomAccessStream) 并提供流来定义 SvgImageSource。

/// [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
继承
Object IInspectable DependencyObject ImageSource SvgImageSource
属性

Windows 要求

设备系列
Windows 10 Creators Update (在 10.0.15063.0 中引入)
API contract
Windows.Foundation.UniversalApiContract (在 v4.0 中引入)

示例

下面是如何将 图像 源设置为 SVG 文件的示例。 由于没有显式指定高度或宽度,因此应用程序布局将规定要解码的 SVG 的适当大小。

<Image Source="Assets/mysvg.svg"/>

注解

SvgImageSource 允许使用 Svg 源使用 ImageBrush 或直接在 Image 控件中显示。 SvgImageSource 支持 SVG 规范中的安全静态模式,不支持动画或交互。 Direct2D API 提供基础 SVG 呈现支持,有关特定 SVG 元素和属性支持的详细信息,请参阅 SVG 支持。 有关格式以及如何使用统一资源标识符 (URI) 访问来自应用资源的图像源文件的详细信息,请参阅 Image 和 ImageBrush

SvgImageSource 表示一个抽象,以便可以异步设置 SVG 源,但仍在 XAML 标记中作为属性值引用,或在代码中作为不使用可等待语法的对象引用。 在代码中创建 SvgImageSource 对象时,该对象最初没有有效的源。 然后,应使用以下方法之一设置其源:

  • 使用 SvgImageSource (Uri) 构造函数,而不是默认构造函数。 尽管它是一个构造函数,但你可以将其视为具有隐式异步行为:SvgImageSource 在引发指示异步源集操作成功的 Opened 事件之前,它无法准备好使用。
  • 设置 UriSource 属性。 与 Uri 构造函数一样,此操作是隐式异步的,在引发 Opened 事件之前,SvgImageSource 无法准备好使用。
  • 使用 SetSourceAsync (IRandomAccessStream) 。 此方法是显式异步的。 可以使用 SvgImageSource(例如 Source)的属性专为此异步行为而设计,如果使用尚未具有完整源的 SvgImageSource 设置这些属性,则不会引发异常。 如果这些事件在控件类) 上可用,则应直接在 SvgImageSource 上或使用源 (的控件上处理 OpenedOpenFailed 事件,而不是处理异常。

OpenedOpenFailed 是互斥的。 每当 SvgImageSource 对象设置或重置其源值时,始终会引发一个或另一个事件。

调整大小

根据预期的用例,可以通过几种不同的方式指定 SvgImageSource 的大小:

版本兼容性

SvgImageSource 类在Windows 10版本 1703 之前不可用。 如果你的应用在 Microsoft Visual Studio 中的“最低平台版本”设置小于本页后面“要求”块中显示的“引入版本”,则你将无法使用 SvgImageSource。 有关详细信息,请参阅 版本自适应代码

若要避免应用在以前版本的 Windows 10 上运行时出现异常,请勿在 XAML 中设置此属性,或者在不执行运行时检查的情况下使用它。 此示例演示如何使用 ApiInformation 类在使用此类之前检查此类是否存在。

构造函数

SvgImageSource()

初始化 SvgImageSource 类的新实例。

SvgImageSource(Uri)

使用提供的统一资源标识符 (URI) 初始化 SvgImageSource 类的新实例。

属性

Dispatcher

获取与此对象关联的 CoreDispatcherCoreDispatcher 表示可以访问 UI 线程上的 DependencyObject 的工具,即使代码是由非 UI 线程启动的。

(继承自 DependencyObject)
RasterizePixelHeight

获取或设置要用于 SVG 光栅化操作的高度。

RasterizePixelHeightProperty

标识 RasterizePixelHeight 依赖属性。

RasterizePixelWidth

获取或设置要用于 SVG 光栅化操作的宽度。

RasterizePixelWidthProperty

标识 RasterizePixelWidth 依赖属性。

UriSource

获取或设置生成此 SvgImageSource 的 SVG 源文件的统一资源标识符 (URI) 。

UriSourceProperty

标识 UriSource 依赖属性。

方法

ClearValue(DependencyProperty)

清除依赖属性的本地值。

(继承自 DependencyObject)
GetAnimationBaseValue(DependencyProperty)

返回为依赖属性建立的任何基值,该基值适用于动画未处于活动状态的情况。

(继承自 DependencyObject)
GetValue(DependencyProperty)

DependencyObject 返回依赖属性的当前有效值。

(继承自 DependencyObject)
ReadLocalValue(DependencyProperty)

如果设置了本地值,则返回依赖属性的本地值。

(继承自 DependencyObject)
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback)

注册通知函数,用于侦听此 DependencyObject 实例上对特定 DependencyProperty 的更改。

(继承自 DependencyObject)
SetSourceAsync(IRandomAccessStream)

通过访问流并异步处理结果来设置 SvgImageSource 的源 SVG。

SetValue(DependencyProperty, Object)

设置 DependencyObject 上依赖属性的本地值。

(继承自 DependencyObject)
UnregisterPropertyChangedCallback(DependencyProperty, Int64)

取消以前通过调用 RegisterPropertyChangedCallback 注册的更改通知。

(继承自 DependencyObject)

事件

Opened

在下载并解码 SVG 源时发生,且未失败。

OpenFailed

当存在与 SVG 检索或格式关联的错误时发生。

适用于