SvgImageSource 类

定义

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

/// [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 规范中的安全静态模式,不支持动画或交互。 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 的大小:

版本兼容性

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

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

构造函数

SvgImageSource()

初始化 SvgImageSource 类的新实例。

SvgImageSource(Uri)

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

属性

Dispatcher

始终在Windows 应用 SDK应用中返回 null 。 请改用 DispatcherQueue

(继承自 DependencyObject)
DispatcherQueue

获取 DispatcherQueue 与此 对象关联的 。 DispatcherQueue表示可以访问 DependencyObject UI 线程上的 的功能,即使代码是由非 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 检索或格式关联的错误时发生。

适用于