SvgImageSource 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
为使用可缩放矢量图形 (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
- 继承
- 属性
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 上或使用源 (的控件上处理 Opened 或 OpenFailed 事件,而不是处理异常。
Opened 和 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) |
使用提供的统一资源标识符 (URI) 初始化 SvgImageSource 类的新实例。 |
属性
Dispatcher |
获取与此对象关联的 CoreDispatcher 。 CoreDispatcher 表示可以访问 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 检索或格式关联的错误时发生。 |